Is this for a transaction you are receiving or for one that you sent?
Ok, try this. Run Bitcoin-Qt with the -rescan paramater.
Well, it doesn't happen accidentally very easily. In SatoshiDICE's instance, they have custom code that did that. The Bitcoin.org client can possibly do that also if you are spending at the same time from the same copy of a wallet in two different places.
So that's why even though this is a known problem, there aren't many reports of this problem occurring. There is a fix ... you can perform wallet surgery using pywallet to remove ALL the transactions, and then rescan and it should be gone. Just make sure you have made a backup of your wallet.dat first.