Such programs that you can make yourself rather easily...

You'd think overwriting it once would be enough. After all it's just ones and zeros. The reason for multiple overwriting is due to the way hard drive platters work - I dont know the technical details but with only one or two overwrites the data can still be read, albeit only by an advanced data recovery machine. It takes work, but it can be done.