I don't agree that a basic Unicode implementation needs anything as complicated as detecting character sets. Also, I'm not sure what you mean by 'it's not properly implemented in Windows'. It is in Windows 2000 and XP.
I'm pretty sure not too many people will complain if mIRC made use of Windows 2000's/XP's built-in Unicode support. Although this may seem like discriminating Win95/98/ME users, it's actually done that way in almost any Unicode application nowadays. It can be done in such a way that Win95/98/ME users can still use the legacy character sets.
Secondly, I don't think there's any need to detect charsets. It should suffice if you tell mIRC what charset to send messages in and what charset to interpret incoming messages as. If someone uses, say, Latin-2, then surely you can just tell mIRC to interpret it as Latin-2 (while encouraging the other person to upgrade to a Unicode-aware IRC client ;-) ). It wouldn't mind if this was done on a per-channel (rather, per-window) basis first, and only per-nick later.
Seeing as mIRC is the most popular IRC client world-wide, UTF-8 implementation in mIRC will pretty certainly significantly drive forward the implementation of UTF-8 in other clients; before you know it, it's considered IRC standard and everyone will be expected to use it.