...
You know, I'm more than a little shocked.
I don't consider running a game to be my opportunity to help my players' psychological fights against their inner demons. They can get psychoanalyzed, go to counseling, or get put on medications at their own leisure. During the game, it's time to throw some dice around and kill orcs.
Assuming they know they need counseling. No one who cheats thinks about why they do it. Not without outside help. I said you are not her psychiatrist so it isn't your job to help her solve her problems. You are however her friend I suppose and as a friend you should have some interest in her well-being, mental or otherwise. It is for this reason that calling her to task in front of others is a problem. If you want to continue playing with her at the table then you accept her for who she is or you don't play together.
I agree with catsclaw - since when is cheating just an acceptable playstyle? It's not acceptable in Monopoly, it's not acceptable in Football, it's not acceptable in marriage, and no group I've ever been involved with has considered it acceptable in RPGs.
No one said cheating is an acceptable playstyle. But RPGs are non-competitive. Cheating is obviously a symptom of some other issue. Does your horror at witnessing the dishonorable cheating outweigh your friendship with this person or does it make you wonder why she does it? What is more important to you cheating at D&D or your friendship with her? I can't answer that for you. But how you answer should tell you how to deal with this problem.
Am I just completely naive to think that "don't cheat" is part of an assumed social construct when playing games with rules?
No. If it wasn't we wouldn't be discussing it. But there is the social contract of gaming and there is the social contract of friendship here. The friendship contract should push you toward sympathy and inquiry. Without the friendship contract, yeah, don't play with cheaters.
I don't want to torment her, I don't want her to feel bad. It's a behavior that's a problem at the table, and I'm looking for the simplest, least offensive way possible to correct that behavior.
And yet you lectured the group about how cheating is bad. So you've already alerted her to your suspicion that she cheats; told her it you don't approve of it; and, put her on her guard.
That's missing the point, though. I'm looking to keep an otherwise good player, but solve a problem behavior without aggressively calling her out. Asking her to leave the game without any reference to the problem is exactly the opposite of what I'm trying to accomplish - which is keep the player, solve the problem.
Most problems do not have a simple solution. Why someone cheats in front of her friends cannot have a simple solution. Tread lightly.
If you really want to solve the problem you are going to have to talk to her one-on-one and see if she knows why she cheats. But this can easily lead to disaster. Primarily because she may not know why she cheats initially. As I said before, while she may have a rationalization for why cheating is okay, I doubt she's thought about why she resorted to cheating in the first place.
You also have to realize that "solving the problem" may not be possible. Perhaps she'll be too embarrassed to continue playing with your group if you confront her, no matter how delicately or ham-fistedly you approach the subject. She might be in such denial that she'll vehemently deny it and if you press she'll never speak to you again. Perhaps she'll nod and agree not to cheat any more to your face and then continue doing so. Then what will you do?
This is why my first piece of advice was live and let live. Unless you accept the range of possible consequences for calling out a cheater, you are better off letting the cheating go. I'm not saying cheating is right. I'm just saying in the grand scheme of things, it isn't worth getting worked up about.