The security safeguard makes it so even if someone does have more than 50% of the network's CPU power, they can't try to go back and redo the block chain before yesterday. (if you have this update)
I'll probably put a checkpoint in each version from now on. Once the software has settled what the widely accepted block chain is, there's no point in leaving open the unwanted non-zero possibility of revision months later.
For instance let us consider how the network functions without the use of checkpoints. A miner might have mined a block in a low difficulty earlier period and relayed it to the network. The block becomes part of the longest chain and without the use of checkpoint, the miner will try to mine the future block in low difficulty. The miner can even make us listen to the fake difficulty chain. If there is a checkpoint, the miner need lots of mining power to continue mining the longest chain.
In simple terms, the checkpoints are coded each time with current difficulty when the client gets a new update so that the client will accept transactions as valid only up-to the checkpoint. This also prevents the fork of the coin to start before the checkpoint specified block.
But as days passed by, these checkpoints were not really helpful nor they provided any real security and they created confusions. Thus the core devs stopped providing checkpoints in the future releases of the client, and if any nodes see a block they consider it as checkpoint and the future blocks below that height would be considered invalid.