I'd like to know if it's possible to configure Exchange 2010 to read x-headers from an outbound message (say, email@example.com to firstname.lastname@example.org) and then re-direct the message to an alternate smarthost if the x-header is present. Does anyone know if this can be done?
This can not be done out of the box. However it can be done with several third party extensions or you can write a custom transport agent if you have .net experience.
No - at least not as you're describing it.
In ESM, look at your
Organization Configuration | Hub Transport | Transport Rules. One of the Conditions you can configure is when the message header contains specific words. If you look at the Actions step of the wizard, you can fiddle with the message itself - adding recipients or putting a legal disclaimer in the body. What isn't there is anything that can directly change the message's routing.
There are third-party products that will choose a smarthost based on sender - but a quick search doesn't seem to turn up anything that works on a message header.