Another rescan, this time on the virtual maching, seems to have fixed it. Not sure what went wrong the with the other attempts.
Posted this as a reply in another thread but, as far as my limited knowledge goes, things do seem strange.
As I said, I have a transaction that has been at 0/Unconfirmed for about a day and a half: http://blockexplorer.com/t/8e8M6K4QqW
It's in a block. I've sent a few bitcents to the address from both the wallet that contains the address and another one, and both transactions have confirmed as normal. I have cleared out the appdata folder and had the client download the blockchain again. So far, still unconfirmed.
I've also tried running bitcoind with rescan, but that didn't seem to do anything either.
After that, I set up a Linux VM, had that client download the block chain, moved wallet.dat there and... still nothing!
It's only 2 BTC, so I suppose it could have been worse. But, somehow, it does feel like something is wrong, unless there's still something more I could try to shake the transaction loose.