Hola:
La verdad es que parece bueno el código... recuerdo que explorer provocaba error manipular directamente los objetos Ajax, y la solución era crear una variable con la respuesta...
respuesta = RequestObject.responseText;
... y luego
if (respuesta.indexOf('invalid') == -1)
var msgs = respuesta.split('|');
Cuéntanos si te vale.
Saludos