There may be (at least) a few reasons.
If you have a sh*tload of small files.
If the minimum cluster size is 512 bytes, that's the least amount of storage allocation you'll get. For example, you have a bunch of very small files, even though the file itself is only a couple hundred bytes, it will still take 512 bytes to store it, because that's the smallest allocation chunk. Ultimately, you may only have 1 gig or two of "real" files, but the remaining cluster space is unusable by the OS. If you activate compression, eeverything gets stuffed into one large file, and you get that space back.
Creation & (non) deletion of very large files.
I have had a couple video files that I ultimately moved (to another machine) or deleted....except WIN2K (and XP, BTW) didn't delete them. I hit 'em with every disk cleaner & utility I have, nothing could get the OS to give up the file. I ended up copying the contents of the drive to another place, re-loading the OS & apps from a Ghost image, then moving the Data files back to the drive.
The disk directory/VTOC could be corrupt
Fixable with many disk utilities.
Some viruses will eat disk space.
How big is your sawp space and registry allocation?
That's about it for me...
Good Luck
Scott