It's possible to secure wipe a hard drive, even against data recovery. You don't want to zero the platter, you want to fill it with random bits. Repeatedly.
Something like "dd if=/dev/random of=/dev/hdX" should work. Do it a few times to be sure.
It begs the question, though, why you're so interested in being able to protect your data from spy agencies. Do you have something to hide?
As for encryption, it's laughable how crappy pretty much all commercially-available encryption are. Even with the strongest encryption you can find, if they have access to the hard drive, and there's *any* pattern to the encryption scheme (which you need to be able to decrypt the data), then with enough patience they can decrypt it. Period. Depending on the strength of your encryption, it takes more or less time, but as long as you're using an off-the-shelf encryption algorithm, it can be brute forced. In Internet terms, 128-bit encryption is basically the standard. On really top-of-the-line "quantum" encryption, you're looking at 1-4 kilobit encryption. To have any chance of keeping people from decrypting your data before the statute of limitations runs out, you'd need terabit encryption, and even then, there's a chance that somebody brute-forcing the key will get lucky. Unless you have a PhD in cryptography, and are *really* motivated, you basically don't have a chance of encrypting your data such that it can't be decrypted. You can probably deter any recreational hackers, but if somebody knows what they're doing and has a reason to believe that you have something they want, you're an open book.
Now, since I feel like getting sidetracked, and I happen to enjoy cryptography, there is an encryption scheme that cannot be broken short of somebody intercepting the key. The problem is that this particular encryption scheme is incredibly bulky, and the moment you try to port it to a computer-based encryption/decryption, it's no longer unbreakable. I'm talking, of course, of a two-point encryption scheme, where you and I have identical books, each with hundreds of thousands of keys. On the order of 5 keys per page, 2,000 pages per volume, 10+ volumes. Each key different (how many permutations of 50 different characters are there?). In order to encrypt a message, I choose a page and a volume number, which gets sent with the message unencrypted. For each letter of the message (including spaces and punctuation), I use a different key, chosen sequentially. For you to decrypt the message, you *must* know which page to start on, otherwise, you cannot employ traditional cipher-breaking on it.
See, codebreaking, for substitution codes, relies on probability, and a little advance knowledge. In the English language, for example, the letter "E" is the most common, followed by "R", "T", and "S". In order to break a substitution code, I need a frequency table for each character in the encrypted message, and I need to make a few best-guesses based on the frequency of letters, until I get a short word or two that make sense. Other giveaways in English happen when you get a one-letter word. In English, there's exactly two one-letter words, so if your encrypted message has a one-letter word, you know that that character is either "A" or "I". Pretty much every language out there has similar patterns.
When each letter of an encrypted message is encoded using a different encryption key, such decryption method becomes useless, for obvious reasons.
Incredibly bulky, but it's a way to guarantee that only two people can read the message. Of course, if a copy gets made of the decryption books, or if the books get stolen, you're still screwed.