I've just spent 15 minutes or so reading through the 1500-line PHP function that implements SMF's search algorithm, and I both want to kill myself and am no closer to knowing how to fix this. I'll come back to it, but it could take a while to decipher what the SMF developers were thinking when they decided it would be a good idea to code while on acid.