Solution 1:

WinDirStat is a port of KDirStat for Linux. It's free, lightweight, small (650kb installer), fast, portable (as a standalone .exe file), and works on multiple versions of Windows. Besides showing folders and percentages (for the entire disk or any subset of folders), it also displays an (optional) graphical usage map. Works well with NTFS Junction folders, avoiding counting folders multiple times.

WinDirStat screenshot

Solution 2:

SpaceSniffer is another possibility. It can scan Alternate Data Streams (ADS) and correctly ignores junctions. However, it is not hard-link aware. If a file has multiple links, they will show up in the scan more than once. I've personally tested all this information to be accurate on Windows XP as of version 1.1.2.0.

SpaceSniffer Screenshot