Every coin has a setting "timedrift". It is meant to allow nodes that are for one reason or another a bit out of sync with the median time, to be able to submit blocks and still be fine.
For example peercoin allows a time drift of 2 hours, and same with NovaCoin. HoboNickels, BottleCaps, HyperStake are all 15 minute timedrift allowance.
So when you are attempting to stake and meet the staking target, you create 60 hashes at once per UTXO if you are using standard peercoin hashing code. The only thing that changes from hash to hash is the input for time. It hashes 60 seconds into the future at once. This system works pretty good, and doesn’t really have much problem.
The problem is that when you get someone that tweaks the code, and says “why not hash 2 hours into the future” I will have 7,200 hashes to attempt to stake instead of 60 hashes". So this code tweakers chance of staking is actually 11,900% more likely to hit a hash (did I do the math correctly? I think I did).
What I failed to realize is that this would really screw up difficulty. Let’s say the code tweaker above hashed two hours into the future, submitted the stake, and the network accepted it with no problems. The next block would calculate difficulty by taking that 2 hour future stake and subtracting the last time before that, calculating the time to stake as 2 hours between the two blocks. The difficulty code thinks that this means that people are having trouble staking, and the diff drops.