Today I got an error 16 with GRUB on one of my machines. This had happened before so I did not worry too much. It is just quite annoying.
A Ubuntu boot CD has a cool feature one can use to rescue such a system (i.e. re-install GRUB properly.) More or less, boot the CD, select the rescue mode, let it do its things for a moment (after you select options like keyboard, etc.)
At the time it tells you to select your drive, choose your boot drive (/dev/hda1 maybe? In my case, it was /dev/hda5.) The system says something like "which disk do you want to select as root (i.e. / in your file system.) Just for fixing GRUB you should not need anything more than that.
Once the drive was selected, choose to enter a shell. After you hit enter it starts and the selected parrintion becomes / (with a chroot that is done automatically for you!)
Now you are ready to run: grub-install /dev/hda
This will give you some warnings, ignore them and try to reboot
(i.e. Ctrl-D and then select reboot system.)
What had happened? Frankly I have no idea, but in general what happens is that MS-Windows overwrites some boot sectors. This makes GRUB not know what to do next. Obviously.
I have also heard of some people who reformatted a Linux partition for Windows but kept GRUB as their boot system. This is fine until you overwrite the files that GRUB needs to startup your computer (stage1 and/or stage2.) At that time you will have to replace GRUB with the standard MS-Windows MBR (Master Boot Record.) The MS-Windows CD let you fix the MBR.
But for me, GRUB says error 17 or 18... These are different errors. You can attempt to fix things as described here, but error 18 is usually because the hard drive cannot be read. Also this is likely your hardware, it could also come from your BIOS that cannot load data at such large sector numbers. In this case, try to put your root partition on /dev/hda1 at the very beginning of the hard drive. If that still fails... get a new drive or a new computer altogether! Well... first try with LILO or some other boot loader! It could be cheaper.