this has been coming up a lot more frequently since more people have started using clearmsn, so here's a whole thread about it...
clearmsn decodes ALL nicknames (you can't turn this feature off), even your own. this is to give users a more readable chat client (hence *clear* msn), but since it decodes your own nickname, this kinda complicates scripting with clearmsn a bit for people who use encoded nicknames (special characters illegible in mirc).
the problem is that the normal identifier to return your own nickname, $me, will return your ENCODED nickname, and clearmsn doesn't know that nickname is in any of your rooms (because it decodes everything). so instead of using $me, use $mi instead, which returns your nickname decoded.
evaluating information
instead of if ($me ison $chan)
use if ($mi ison $chan)
instead of if ($opnick == $me)
use if ($opnick == $mi)
always use $mi in IF statements and other scripts that evaluate information so your script won't be confused.
sending information
on the other hand, you will still need to send the encoded ($me) form of your nickname in commands where you send your nickname to the network, so it is displayed properly for other users:
/msg $chan My nickname is $me
so, thanks for reading this and getting totally confused.