In the latter case--for example, if the payee cannot legally accept the funds--there needs to be a way to either ensure the transfer does not take place, or to reliably and provably return the funds to the actual payer (which may not be the same as the originating address); otherwise the payee is left with more Bitcoins under their control than they can legitimately account for, which is sure to cause problems in the event of an audit.
The answer in this case it to turn the funds over to the government; if you can not find a way to return them.
I am thinking of trying to convince Canada's Receiver General to post a public Bitcoin address. One sticking point I forsee is that he who controls the private key could steal the funds. However, I worked out how joint Bitcoin accounts can work as well (but have not implemented it in code yet).