It's quite simple, just disallow two consecutive PoS blocks and lower PoS trust to match PoW (1).
There's no way PoS-only miner can orphan a single block.
PoW miner forking/orphaning still requires a substantial percentage of network hashing power.
However, this way we're essentially removing the intended purpose of PoS (checkpointing). I was unable to come up with any suitable solution that also preserved PoS checkpointing functionality - IMO it just can't be done (the right way) with current hybrid PoW/PoS design. In PoS-only system - no problem. But with hybrid chain it's just one hell of a mess.
I think I'll have the implementation ready soon (in 1 day methinks).
The only issue is deciding on the blockchain fork date. It should be fairly soon, but not too soon as we should give a majority of the network time to upgrade. How about 1 month?
Seeing the reversals we've had lately, I don't want to wait too long, but I also don't want to see a knee-jerk reaction. February 1 would be my vote. I think once it's done, we'll simply need to make sure we contact the pool operators and verify they've updated the pool wallets well in advance. This means reaching out to feeleep, obermench, and digger (the biggest pools I know of), and the exchanges (cryptsy and bter.com - are there any others?).
I'm glad you've got something in mind, I've spent a couple hours trying to find out what the fix novacoin implemented was, even digging through the code, but I can't isolate a single POS fix - there have been quite a few tweaks to POS in Novacoin. I can see that they currently have adjacent POS blocks, so what did they do to address this issue?