The last paragraph in robbak's post is a work of fiction, government agencies overwrite data multiple times because they're paranoid, absolute recovery is likely impossible.. determining the
previous state of a single bit alone is
theoretical, actually restoring enough of an original bit pattern would be improbable.
For example, the ksh shell on OpenBSD 4.3 is 324,992 bytes in length, 324,992*8 = 2,599,936 bits arranged in a unique pattern to form the executable.
I've yet to find any concrete evidence that recovery of data after being overwritten is possible..