It might make some difference what format the D:\ drive is using?
It's unlikely to be old FAT at that size, so a very old Norton wouldn't be helpful. The format used on the disk should be the only thing that matters, especially if the Norton will run in Safe Mode.
It could be FAT32, but normally 10% free space is the minimum said to be required to defrag with, and 20% almost always is enough to run on a FAT32 drive. Any reasonably recent Norton should handle any FAT32 drive, but you may have to run it from a command line if it clanks with the Windows version you have.
It's remotely possible that you can have lots of free space but the free space is too fragmented for defrag to use. About the only thing that can be done is to remove enough files to make a contiguous free hole that defrag can run in. Once a partial cleanup is done, you would be able to put the files back and run defrag normally.
In WinXP at least (probably in all Win versions) defrag is a legal command line operation, so it certainly could be run in safe mode to avoid having RAM memory loaded up(?).. Type "defrag /?" at a command line (DOS prompt) to get the details on running it the way you want.
[Start|Run "msconfig" and on the general tab set "diagnostic startup" - on reboot usually gets a clean enough "Safe Mode." Rerun "msconfig" to set back to normal boot when done. Sometimes this change on the general tab changes stuff on other tabs, so watch what needs to be reset if it doesn't come back right. You'll get bitch notes from Windows if something else needs a reset.]