Lots of things could be responsible, but it is most likely a software problem.
The question I like to ask myself though is 'What caused the software problem though'? Did failing drive media corrupt your registry or other files? Did a virus do a number on your system? Did Windows screw up again? Did a recent software or driver install cause this? These are all questions we don't have answers to, so we should look into finding answers for them.
You should run a drive diagnostic using a manfucturer's diag. A list can be found here:
https://www.techspot.com/vb/topic7602.html to run out drive problems.
Under Safe Mode, if you Start > Run > cmd.exe you can type
chkdsk /f and reboot your computer to run a file system check. Does it turn out to be good? Did you have problems? If so, what were the problems listed?
Under Safe Mode with Networking, perhaps you can run a virus scan.
http://housecall.antivirus.com
Under Safe Mode, Start > Run > eventvwr.msc
What does the system event veiwer tell you? ARe there any critical errors under the System or Applications section that are recent? If so, what do they say?
Under Device Manager in Safe Mode, maybe we can take a look at your installed devices? Anything look funny? If a driver is to blame, perhaps we can remove that device and force Windows to redetect and reinstall it. Common causes from freezing on bootup might include the graphics adapter or IDE/SATA controller.
Do you have the Windows 2000 CD and product key? We can attempt to 'upgrade' your system, which will reinstall Windows but keep most of your settings and files... But refreshes your system files with nice, new ones.
Just some ideas to get you started.