On windows use the sysinternals tool sdelete to zero out all the empty space. The command you want would look like this sdelete -z c:
.
Usage: sdelete [-p passes] [-s] [-q] ... sdelete [-p passes] [-z|-c] [drive letter] ... -a Remove Read-Only attribute. -c Clean free space. -p passes Specifies number of overwrite passes (default is 1). -q Don't print errors (Quiet). -s or -r Recurse subdirectories. -z Zero free space (good for virtual disk optimization).
For Linux I suggest you use zerofree.