I too have had this happen, but mostly with Win98se.

When it says that it can't find the registry, you can goto a command prompt and type

c:\scanreg.exe /fix

this should bring you into a utility that will repair your registry for you.

Or, you can do

c:\scanreg.exe

that will give you options. You can just restore to an earlier date.

Another thing... when it just freezes and then when you reboot it tells you it can't find the primary partition... you may be looking at a failing hard drive. Just to be safe... I'd start backing up your data ASAP.

Then again, it might just be a dll like others have said.