Automating Exchange at the server level was not for the faint of heart. Writing transport sinks was difficult and debugging was even harder.
All this changes now with Exchange 2007 which provides better automation wiht transport rules from the GUI and also writing your own transport agents with .NET Framework 2.0 SDK, and Visual Studio 2005.
Read about it here:
http://msexchangeteam.com/archive/2006/12/04/431755.aspx