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