Here are some notes on commands I found useful while cleaning off some old laptop system drives.

You can completely remove /boot, /usr/src and /dev:

rm -r $DISK/{boot,usr/src,dev}

To get a full listing from du, you have to make it explicitly include the dot-files, but exclude . and ..:

du -shc .[!.]*

You generally don't need empty files or symbolic links.

find $DISK/ -xdev -type f -size 0 -exec rm -v '{}' \;
find $DISK/ -xdev -type l -exec rm -v '{}' \;

Once those are out of the way, you can drop the empty directories.

find $DISK/ -xdev -type d -depth -exec rmdir -v '{}' \; 2>/dev/null

The -depth flag tells find to do a depth-first traversal. Normally, you don't care about that sort of thing, but with this one you do. You want to remove all empty child directories first, on the off chance that doing so empties out the current directory and it too can be removed. Otherwise, you have to make multiple passes over the filesystem, and it's tough to tell when you should stop.