The Event System allows objects to be notified of changes in their environment. They do this by selectively hooking into known events, such as movement and social interaction events. When the event occurs all objects which have hooked into it will be notified.
The Event System is actually several subsystems all handled through the same parent object--this will often cause confusion. In general, the only subsystem most people will be interested with is the Registering ability of hooks. However, all of the subsystems are: Registering, Hooking, Sending/Receiving.
The Registering subsystem allows an object to register an event hook along with when it should be turned on/off and when it should be updated (such as when the object is moved). The Hooking subsystem deals with whether the object receives an event or not (the object must be hooked into an event to receive it). The Sending/Receiving subsystem deals with the initial and final stages of sending and receiving events. In general, a programmer is only interested in the Registering and Sending/Receiving subsystems (as Hooking is handled automatically once an event is Registered).