I suggest the option of entering words/wildcards that mIRC will remove from the phrases before looking if the original highlight words/wildcards match.
For example, I set "*cold*" to highlight. I have my reasons for not using "cold" itself, or any other wildcard matching "cold", it must be that one. However, if someone says "coldplay" (the band), "coldfusion", "coldwar" etc., highlight is given as well.

I know this is the intended behaviour and that's why I suggest the exceptions list addition. It works just like the original list, but every word that matches what's in this list would be removed from the phrase before checking the original one.
So, if I had "*coldplay*,*coldwar*" in this new list, the situation above wouldn't exist.

From a mIRC script viewpoint, it would have the same concept as this example code:
Code:
ON *:TEXT:*:#:{

  ; First, remove all the exceptions from the phrase
  var %text = $1-
  while ($wildtok(%text,%exception,1,32) != $null) && ($findtok(%text,$ifmatch,1,32)) {
    %text = $deltok(%text,$ifmatch,32)
  }

  ; Now search for highlight words
  [...]

}