This was very recently reported
here.
The problem lies in the fact that you never really know if the incoming message should indeed be unicode and generally you have to take an educated guess. This is what mIRC does intentionally, and with any guess it can occasionally be wrong.
The behaviour is currently "intentional", though it's not always right and can probably be improved. However, I would say that if the user's message contains non-unicode then mIRC is indeed
correct in parsing it as ANSI-- the user should be the one to properly encode their message (you're not supposed to mix ANSI and UTF-8 anyway). The only time when mIRC is "wrong" is when the ANSI text (or UTF8 for an incoming ANSI line) is generated by your mIRC script/configuration and resides on the same line. This case should not affect the encoding of the incoming line. You can read more about that one in the post above.