I'm somehow in a similar situation.
What I'm trying to get is a kind of wrapper that handles the "notification type", and then, perform one output or another. The problem is that notifications are linked to contacts, so you have to define in the contact the notification command, and I've found no way to override this. I think it would be useful to have a way to override/supersede this behaviour in certain cases.
I've done some successful tests when monitoring urls, but at the cost of defining new contacts for this (i.e. appending the "_url" suffix to the original contact) and the using a specific script. I didn't dedicate too much time, but the idea is take a unique notification script for all "notification types" (let's say "host", "service", "url"...) with a different layout, and this is the idea of the "wrapper" I mentioned at the beginning of the post.
If anybody has gone somehow far in this, please comment.
Regards and happy new year 2010.