Handcent SMS will allow you to change notification tone per each contact...that is, if you want to choose to use that app.
As far as the email and IM's, you'd have to go into each programs settings and change the notification from within the app. However, I'm pretty sure you can't set it up like stated above with the Text notifications. You can change your email sound, but not on a 'per contact' basis.
Doing the texts sounds with the stock messaging app does not provide this ability, so you would have to use the app from the market.