Using robocopy with /l will do it, ignoring things that you don't have access to, and /B will even try in backuo mode, which might get you access you otherwise wouldn't have.
/L :: List only - don't copy, timestamp or delete any files.
/XJ :: eXclude Junction points. (normally included by default).
Is there anything specific you meant by "gracefully deal with access denied to some subfolder" ?
/Edit - now that you've asked essentially an entirely new question, I will flood you with other answers:
Do why do you need it running on Windows 7? Run it on the server (s).
How do you expect to see this used? Crystal Reports can use a filesystem as a reporting source, and you could group by size in one report, and by number of files in another. Does it need to have history? You could use something like RRDTool to run diruse on every folder in the parent directory or directories where you keep your homedirs. And then you have nice pretty webpages with nice pretty graphs.
For interactive use, I love WinDirStat, but some people like TreeSize Pro.
How does this tie into your need to have this be redistributable? Are you trying to build and sell a management product for other IT admins? If it's just for you and your staff, that's not "redistributing."