The urandom business may be overkill. Are you trying to defend against somebody who steals your drive and plugs it in, or somebody who steals your drive, disassembles it in a clean room, and uses an elecron microscope on it?
For the former case, overwriting blocks with zeros is enough. For the latter, you really need hardware support, since modern drives have been known to move failing blocks around on you whether you like it or not.
(Action) personally likes the approach suggested by Garfinkel and Malan in "One Big File Is Not Enough", but I'm not aware of any OS that implements it