Even something like the symantec traffic inspector can be fooled with low bit data encryption. If someone is going to steal files out of your network, it will take a locked down machine to stop it; regardless of what is being controlled on the network.
Yes, that's why you configure it not to allow outbound encrypted or zipped or other unknown data out, i.e. only allow out data that you know is safe, and why you use desktop sided not appliance based (though windows only).
That being said, unless the company is full of power users, the casual user can easily be blocked. I don't think the IP that gmail uses for example, would not be the same as the IP it's IM uses, at least I would hope not.

Unfortunately Gmail chat is embedded in gmail, and hits the same VIPS that the rest of the webmail interface hits, so it's not possible at Layer3 to separate them out. You may be able divert the dns lookup for the service if it's clearly different but usually google keeps everything on google.com/mail or similar (to speed up dns) so this may not be possible either. However at Layer 7, you can filter on the url as I believe this is distinct, but you need a proxy .... , and that's just Gmail !
However, the ports it uses for voice and file transfer may well be possible to filter at Layer 3.