Restoring the registry fixed my c000021a error.
I have Vista and I was also getting the c000021a error. I could not boot into Windows via any method without it rebooting. Trying Safemode would show crcdisk.sys as the last item and then it would reboot as well. I had to hit F8 at startup and choose "Disable automatic restart on system failure" to see the c000021a error. Attempts via a Vista Recovery Console using "chkdsk C: /f /r" failed to fix it. System restore via the Vista Recovery Console failed to complete.
OK now onto what ended up allowing me to boot back up. It ended up being a restore of the registry. I had to backup and then replace DEFAULT, SAM, SECURITY, SOFTWARE, and SYSTEM in C:\Windows\System32\config with files of the same name in C:\Windows\System32\config\RegBack. Per the below Microsoft article for XP, to do this for XP you have to copy the files from C:\Windows\repair instead.
http://support.microsoft.com/kb/307545
The article said to NOT do this if you have an OEM PC, but I did it anyways so USE AT YOUR OWN RISK if you have an OEM PC.
You will need to get to a Recovery Console for your OS to do this or if you have access to a working computer you can download a live Linux distribution like Ubuntu to access your C: drive and to rename and copy the files. I used Linux myself. If this doesn't work you can always undo it by restoring the files you backed up if need be. System Restore, which was failing from the Vista Recovery Console before the registry restore, worked from within Vista after the registry restore but the c000021a returned so I re-restored the registry again to get back in. I'll be sticking with the current registry. I'm just happy I didn't have to format and reload Vista. Hope this helps.