Sorry for bumping an old thread (with such a frequently discussed subject, though), but I've just noticed that the idea I've been suggesting here is supported (or even created) by Ircle's colour coding protocol: a list of private colours and another list of public ones, the former being known as "static" and the latter as "dynamic". The suggestion here is almost behind the same idea, and I thought this was worth mentioning: it's been done, I think it would be great if mIRC did the same or something like that.
I don't mean mIRC should apply to Ircle's method, because I don't think anyone would like the idea of "static" colours, or the lack of background colours, etc. It's too late to change the colour system, in my opinion. However, mIRC could base its own method behind the "public-private" principle, and then people could use all the colours from 16 to 98 (as private colours) as they'd want for their scripts, leaving 0 to 15 as they currently are (public colours).
For more info on Ircle's colour coding protocol and the debate behind the different protocols,
click here. There are some good points in that page, in my opinion. I realize there must have been a lot of discussion about this subject in the past, but after reading that, I thought I should at least point out where the idea comes from.