Some of the components I have in mind are:
- a page to read/manage personal messages
- a list of "current" users that appears on course page (eg accessed in the last five minutes)
- a quick way to send a message to anyone on the recent list (or anyone on the user list)
- an efficient way to check the database on each page load for new incoming messages and then print a popup alert window (onLoad)
- the popup window can allow a return message
- a user preference to disable these popup windows if they aren't wanted
- a user preference to direct all instant messages to email
That would do for a start ... I suppose later on there could be Jabber integration, email integration etc etc
There are also some problems with instant messaging, as it makes a lot of talk invisible. For example, this little discussion has occurred pretty quick, but it has the advantage of being on the permanent public record for others to see, in a structured way. If you'd instant messaged me then this would all be effectively invisible to others. So these issues need to be thought about in an educational sense so that communication is not too diffused - perhaps the GUI needs to restrict the size of instant messages or something.
Personally I can't see myself working on any of this until next year. Using ICQ or Yahoo on the side is an excellent way to provide similar functionality in the meantime.