For an ECE you should ask in microsoft.public.win32.programmer.messaging,
that's where the MAPI
programmers hang out.
For the Outlook object model you can subscribe to events in any folder in
any open store, so you could handle Folder.Items.ItemAdd() in any loaded
folder. You can handle Folder.Items.ItemRemove() in any likely source folder
but that event fires after the item was moved/deleted and doesn't tell you
what item was affected.
For Outlook 2007 you can use the Folder.BeforeItemMove() event which tells
you which item will be moved and where. If the second parameter is null that
means the item is being deleted. That event can also be canceled.