Userinit is basically part of your start up process
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/regentry/12330.mspx?mfr=true
Description
Specifies the programs that Winlogon runs when a user logs on. By default, Winlogon runs Userinit.exe, which runs logon scripts, reestablishes network connections, and then starts Explorer.exe, the Windows user interface.
You can change the value of this entry to add or remove programs. For example, to have a program run before the Windows Explorer user interface starts, substitute the name of that program for Userinit.exe in the value of this entry, then include instructions in that program to start Userinit.exe. You might also want to substitute Explorer.exe for Userinit.exe if you are working offline and are not using logon scripts.
Other possibly usefull links
http://forum.sysinternals.com/forum_posts.asp?TID=7672
http://www.kellys-korner-xp.com/xp_wel_screen.htm
I just googled "userinit" and there are any number of usefull sites.
Non of them give a specific answer to your problem but I suspect that userinit.exe is corupt. You need to obtain a clean copy and insert it in the correct place in the registry.
It is also possible that an application being started by userinit is corrupt and causing userinit to fail.
I suggest you take the laptop to "the shop" and ask them to fix it.