http://www.csharphelp.com/archives3/archive575.html
http://www.codeproject.com/KB/IP/Instant_Messenger.aspx
La idea es que el cliente se loguea en un servidor...el servidor conoce el estado de todos los clientes que iniciaron una sesion en el servidor y recibe mensajes y envia notificaciones...
no estoy muy en el tema pero creo que Remoting Services o Windows Comunication Foundation pueden ser puntos de partida para investigar...
Saludos