A mi me paso lo mismo y lo que hice fue lo siguiente:
1. Pincha el disco en otro ordenador con xp y haces esto
Abra Inicio, Ejecutar, escriba regedit y pulse Aceptar.
Seleccione la clave HKEY_LOCAL_MACHINE.
Pulse sobre Archivo, Cargar subárbol.
Apunte al fichero C:\WINDOWS\system32\Config\SOFTWARE ("C" es la letra de la unidad del XP dañado).
Escriba RamaXP y pulse Aceptar.
Acceda a la rama HKEY_LOCAL_MACHINE\RamaXP\Microsoft\Windows NT\CurrentVersion\Winlogon.
Asegúrese de que el valor de la parte derecha de nombre Userinit exista, sea de tipo REG_SZ y tenga por contenido lo siguiente (note la coma final): C:\WINDOWS\system32\userinit.exe,
Una vez haya realizado las modificaciones pertinentes, haga clic sobre Archivo, Descargar subárbol, cierre Editor del Registro, reinicie el sistema e intente iniciar sesión en el sistema que estaba dañado.
A veces hay que copiar el archico userinit.exe de otro xp en el que falla.