|Is the hardware okay? Do disk scans indicate any problems? Is the drive running is PIO transfer mode instead of the default UDMA mode? PIO is way slower than UDMA.|
If there are no hardware problems yet it's taking a long time, the drive was probably heavily fragmented, and/or you have low free space for the defrag. The windows defragger is not really blazing fast even under the best of circumstances.
If you want a fast yet comprehensive defrag solution capable of defragging all the files including the system files, you'd have to use a commercial defragger. I personally use Diskeeper 2009 Professional, and it's fantastic. Runs in full automatic mode and defrags in the background using idle resources, so I can continue to use the system while it's doing its thing. http://www.diskeeper.com has free trial versions that work for 30 days, so you may want to use one of those to defrag your drive.