Without knowing the exact model laptop, I can only assume that it is reasonably current.
I would strongly suspect that somewhere along the line someone has installed a device driver/application that is not compatible with Windows 2000. This recently happened to me, and I had a similar problem.
First, boot into safe mode and look at the event viewer, this may or may not tell you what the problem was or what the offending driver was. The fact that you can boot into safe mode is a very good sign.
Next, boot using the last known good configuration. This may or may not give you a good boot. If it does not, don't despair.
Next, boot and enable boot logging. This starts Windows 2000 while logging all the drivers and services that were loaded (or not loaded) by the system to a file. This file is called ntbtlog.txt and it is located in the %windir% directory. Safe Mode, Safe Mode with Networking, and Safe Mode with Command Prompt add to the boot log a list of all the drivers and services that are loaded. The boot log is useful in determining the exact cause of system startup problems.
Next, boot into safe mode again, and look at the above referenced file to see if it gives you any ideas. Then go to add/remove program and remove any applications that are fairly new to the system. Reboot and see if this helps.
Next, hook up another computer via a serial cable and boot using debugging mode. This mode starts Windows 2000 while sending debug information through a serial cable to another computer.
About now, start hitting yourself in the head for not creating an emergency repair disk.
(more>