XUL MSN Messenger is a cross-platform alternative to MSN Messenger. It aims to be a light and cross-platform MSN client with useful but not too many features.
With the release of version 0.8, support for conversations with multiple contacts has improved, and file transfer has been implemented. There is much better protection against server bugs as well.
As always, view the change log for more details. What's especially nice is that the conversation window won't automatically scroll when new messages are arrived when you are reading scrollback.
Version 0.8.5 brings with it a couple bugfixes, better compatibility with Gecko 1.9.x-based applications, and the Italian translation supplied by Vink8_. It is now also tagged as compatible with Firefox 3.5.
XUL MSN Messenger should work on Mozilla 1.7.x, all SeaMonkey versions, and all Firefox versions starting from 1.0. Note that Mozila 1.7.x and Firefox 1.0 only support sliding notification windows on Windows. Finally, version 0.8 drops support for Mozilla 1.4-1.6 and Firefox 0.8-0.9. Some parts of the code now use features that were introduced in Gecko 1.7.
The en-US, fr-FR and nl-NL locales are supported.
Note: they actually were available in 0.7.x, but the install script didn't install them because it didn't know about their existance. Oops!
The file transfer that has been implemented is from the days of MSN Messenger 5, when not everyone was behind a router yet, though it does account for one person being behind one.
Since it's not possible to reliably detect if your client is behind a router, there is a checkbox in the preferences to indicate this. This setting only has an effect if you are sending a file. In the negotiation, your client will tell the other that it has trouble accepting incoming connections, so the result will be that you will be connecting to the other to establish a connection. Obviously, this won't work if the other client is in the same situation.
When receiving a file, it depends on the other client if you will be connecting to it or it to your client. Most often, the other client will be indicating that it is behind a router, and will be trying to connect to you.
The easiest way to deal with the problem of being behind a router is to set it to allow and forward incoming TCP connections on port 6891 to you.