Simon,
You can create custom subscriptions using BisSubscribe.exe tool and give a custom filter to do it. If you search for bissubscribe in net you can get lots of info on it.
To get the schema for WorkItemChangedEvent and to build filter, check
http://blogs.vertigosoftware.com/teamsystem/archive/2006/07/03/Subscribing_to_Team_Foundation_Server_Events.aspx
Pete's blog has much details on creating subscriptions & troubleshooting: http://blogs.msdn.com/psheill/
I hope this helps. Below is the event filter we use in UI for "mail when my items changed by others" - if you need an example:
"PortfolioProject" = '<Project>' AND ("CoreFields/StringFields/Field[ReferenceName='System.AssignedTo']/OldValue" = 'Naren Datha' OR "CoreFields/StringFields/Field[ReferenceName='System.AssignedTo']/NewValue" = 'Naren Datha') AND "CoreFields/StringFields/Field[ReferenceName='System.AuthorizedAs']/NewValue" <> 'Naren Datha'
|