Instant messengers aren't too hard, just a list of users in a db or a SSI, then send signals to say they're online, then it's just basic chat from there...Megagun made an MSN Messenger client that accessed the MSN servers from MMF...
P2P is a lot harder, moosock can send binary it's just a matter of listing files...