Don't confuse the difference between a machine initiating a connection, and having one initiated with it. If 192.168.1.3 tries to make a connection to a server on the internet, it will do so no problem, because the router remembers who start the conversation. You are trying to make a client outside of the network connect to a server inside the network (backwards of what MSN does), and that requires you to forward a port in the router to the client... period. No exceptions. The only way to do what you want is to MAYBE make the chat happen by sending a broadcast packet, so that 192.168.1.1, 192.168.1.2, AND 192.168.1.3 all receive the message, but 192.168.1.1 and 192.168.1.2 will simply discard it (since it isn't meant for them). You also need to pray that the router isn't advanced enough to know to block what is essentially a smurf attack, used to try to be legitimate traffic.... this would also devour network resources on the internal LAN..... but that's about the only options you have....
1) Let 192.168.1.3 initiate the conversation, and have the server be outside
2) Pray you can send broadcast packets from outside the network
--This will require packet spoofing, so forget about winsock
3) Forward The Port to 192.168.1.3... The proper way to do things.