I have run into this problem before but never quite solved it. I have a form with several validators and also a CustomValidator.
bduke's RegisterServerValidationMessageScript is "faking it", but it isn't. It really fixes the problem. Every Utility namespace needs this function somewhere.