Probably the approach necessary will be to have anyone that wishes to have the funds refunded send to you a signed message proving they truly are the owner of that address. The bitcoin-qt client suports this -- you simply pick one of the adresses that the transaction was from and do Sign Message. Anyone can then verify. And if they do that, you might as well just ask them for identity and just keep the payment if that's provided.
While I think signing messages with a particular address for the purposes of identifying one's self is a great idea in concept, I don't see how it's currently possible (unless everyone was using Armory). Last I saw, the message-signing interface in Bitcoin-Qt was weak -- it's not easy to communicate exactly what you were signing, and it's not easy to verify a signature. The person can send you the message they signed, but it won't work if they accidentally added an extra space at the end, or forgot a punctuation mark. I made progress on this by creating
"signature blocks" in Armory, but it isn't compatible with any other program. I was waiting for Bitcoin-Qt upgrade theirs so I could help design a cross-client implementation.
However, I still believe this is a valid, useful use-case, so I'd love it if the core devs would make this feature easier to use, and then I would make it compatible. The specific recommendation I was making was that you not only sign a message, but you have a signature block that clearly identifies the signature and the data that was signed. In Armory, it looks like this:
-----BEGIN-SIGNATURE-BLOCK-------------------------------------
Address: 1ArmoryXcfq7TnCSuZa9fQjRYwJ4bkRKfv
Message: "Armory version 0.60-alpha was released 2012-Mar-"
"19 07:40pm. Windows binaries have been released "
"in zip files with the following MD5 hashes: [Wi"
"n32::7b6e3dd0e9114523e303db304a87c0d6] [Win64::e"
"930159411483428da40c127f654bf69] Please do not u"
"se any zip files whose hash values do not match!"
PublicKey: 0411d14f8498d11c33d08b0cd7b312fb2e6fc9aebd479f8e9a
b62b5333b2c395c5f7437cab5633b5894c4a5c2132716bc36b
7571cbe492a7222442b75df75b9a84
Signature: 842590674c06b8712bd9aa04ae7e3fd4c09410f6881ec5a361
fcab55433f1d28f569b3771216754f400a5674e24984943d62
9079a8d56b3c5285ee533f8f4f16
-----END-SIGNATURE-BLOCK---------------------------------------
You only have to copy that block into the Armory message signing dialog and click "Verify" and it will pop up a window like
this. I pushed for this a long time when I first made it, but there was little interest in it. Maybe this is an excellent time for bitcoin-qt to implement something like it so that high-profile use cases (like campaign financing) can leverage it.