The Microsoft IM protocol states that when sending or receiving a file, the sending machine issues an invitation and then opens a port for the receiving machine to connect to and pull the file if it accepts the invitation. This would insinuate that if you can receive files your machine has no problems opening outbound ports, and if you can't send files, it's because the recipient's machine can't connect to the port on your machine, either because of a fault at your end, or because they can't open outbound ports. You mention though that it works from the XP box, so the problem is most likely at your end with ME.
So, how does the XP machine connect? ICS? Wingate? A proxy? SOCKS? Have you got inbound port ranges mapped through to the XP machine? Do you use any firewalling software on either box?