Actually, as it says in Troubleshooting Windows XP - NeoSmart Technologies Wiki, it's most likely that boot.ini is pointing to the wrong partition.

That'll give you the ntoskrnl bug, amongst other things. Play around with the rdisk()partition() values in boot.ini until it works.