Is there an encryption/decryption algorithm that can give two different outputs? The recent revelations that airport staff can detain travellers in an interrogation room and force them to give over passwords to encrypted-HDD laptops under threat of jail time has made me think about some sort of dual password encryption/decryption mechanism.

For example:


Password 1 decrypts all the data as usual.
Password 2 decrypts most of the data, leaving a portion looking like random 0's and 1's.


I think it has to work at the algorithm level, and not rely on software, because the HDD could be removed from the laptop and then any software protection is useless.

My question is, are there any algorithms that can give two different (but similar) results depending on which key is used?
It looks like you might be interested in applying 
 Deniable Encryption. 

The general idea of this kind of encryption is that you can decrypt the data to produce a different (but still plausible) plaintext. In this way, the airport staff or whoever is asking you to decrypt the data, would by no means differentiate between the real plaintext and the alternative one. 
I suggest to have a look a this paper.