You can call "cheat" even when you aren't 100% positive someone is lying to keep the fear of being called out real. Like @PhilipKendall said, if you are only going to call "cheat" when you can prove it or when you are at the last opportunity to keep someone from winning, there is never any fear of being called as long as you make relatively conservative plays. And that doesn't make for a very interesting game.
Part of playing cheat is mind games and taking some risks. You have to evaluate your own risk-reward along with the risk-reward of other players.
For example, say I hold two 3s and my two opponents each hold one 3. I could very easily put down the two 3s and be perfectly safe. I could also call three 3s and hope to get away with it. Neither of my opponents can prove that I'm lying based on cards alone (note that I don't know this when I make the play, I need to evaluate the risk-reward of getting rid of an extra card vs. having to pick up the pile). Is it worth it for them to call cheat? Maybe. Is it possible I actually have three 3s? Yes. Is it likely? Maybe, depending on how the game has gone so far. My opponents need to evaluate the risk-reward just like I did. If there are only a few cards in the pile, the risk is fairly low and the reward is that they make me pick up cards. The other reward is that it can make me more hesitant to lie. Which slows me down and makes it easier to win.
What if there are more cards to pick up? Is it worth it to call cheat? Maybe. The likelihood of lying goes up as people start running out of cards and the pile of played cards gets bigger. But the penalty for being wrong is much higher.
The risk-reward analysis gets even more interesting when you consider how close your opponent is to winning. Which is worth more, getting your opponent with 5 cards to pick up 20 or getting the one with 15 to pick up 20? Is it worth picking up 20 yourself if you are wrong? How likely is it that the person with 5 cards is lying about their last play? What about the guy with 15? Same arguments apply to how close you are to winning and if it is worth it.
Another potential reason to call cheat is to get cards. I know this sounds crazy but bear with me for a second. If you aren't doing well and you opponent is, having cards can make it really easy to call cheat on someone and give them cards. And you can take someone from being on the cusp of victory to having as many cards as anyone else fairly quickly. (From a risk-reward perspective, the risk is fairly low to me, since I'm probably going to lose anyway if I don't do something, but the pay out is huge if I can keep you from winning and give myself a second chance, either by calling you on a lie or making it impossible for you to lie in the future and play your last card.)
Personally, I also play a little bit of the agent of chaos role sometimes. I will sometimes call cheat even if I'm not sure. And it can keep my opponents honest, which is to their disadvantage. It makes them think that they could get called any time. So they are less likely to make risky plays and be very conservative. And that helps me.