For anybody wanting to know how to do this, it's possible to force Windows Live Messenger to obey your proxy settings.
In my case I wanted MSN 2011 to connect using a socks proxy (using SSH port forwarding to use an SSH tunnel as SOCKS 5 proxy).
To set the proxy settings, go to the "Connection" page in the preferences of MSN Messenger, click Advanced Settings and enter your proxy details.
The problem is, MSN will only use your proxy settings if it can't normally connect to MSN without them (i.e. if your default TCP internet connection will work, MSN will always use that instead of your proxy settings). This is how you can force MSN to use the proxy settings.
You have to block MSN from being able to connect to its authentication servers without the proxy. To do this, we have to tamper with the Hosts file.
The Hosts file on Windows is kept at
C:\Windows\System32\drivers\etc\hosts (note that it doesn't have a file extension). Open this in a text editor like Notepad or the
edit command in Command Prompt (I prefer the latter approach because you can open a Command Prompt window as Administrator and then editing the file is a snap without having to deal with permission issues when saving changes).
Add these lines to the Hosts file:
127.0.0.1 messenger.hotmail.com 127.0.0.1 msgr.hotmail.com 127.0.0.1 gateway.messenger.hotmail.com 127.0.0.1 login.gateway.hotmail.comAnd then restart MSN and it should have difficulty connecting without the proxy settings (if using a SOCKS proxy, attempt to sign into MSN before you open the proxy to be sure that it fails to connect. Then start the proxy and see that it successfully signs in).
This works by routing all the MSN Messenger hostnames to the loopback address and blocks MSN from being able to authenticate. But with the SOCKS proxy, it can connect because it would do the DNS lookups from the SSH server instead of the local system.
Hope this helps someone!