Have you ever thought of crowding out your cravings? I don't know how scientific this is, but I can tell you that it works for me.
It's kind of like sowing a field full of clover. If that field is full of weeds, but you want it to be full of clover, you have a few options. You could stand in the middle of your weed field and give it the death stare, and then complain to all your friends if clovers don't spontaneously emerge (Pretty much what we ladies do when we stare at ourselves in the mirror and lament that we don't look like the glossy magazine ads). Or you could spray some nasty herbicide to kill the weeds before you sow your seed (Which is a lot like doing the latest crash diet fad). Or you could sow a ton of the clover seed and let it choke out the weeds. It is a gentle method that is often used when people want to have a field of wildflowers. And when it comes to dealing with cravings, it's what I call "crowding out your cravings".
Often, when we crave something it can be a sign of a deficiency in an area. For instance, did you know that craving coffee or chocolate can sometimes indicate a magnesium deficiency? That doesn't mean that every time you have a craving it automatically means you have a vitamin or mineral deficiency. Cravings can also be triggered by emotions and other things. However, sometimes they are triggered by a need in your body.
I don't recommend rushing out and buying every vitamin at the local health food store in hopes of ridding yourself of food cravings. Instead of stressing out about having caved in to my craving, when I notice that I'm having a problem with cravings I simply try to make sure I am getting plenty of nutrient-dense foods that are very close to their natural state. I make sure I'm not filling up on processed foods and "food fluff" that have their pseudo-nutrients injected so the label will look good. (Check those labels. You should be able to pronounce what you see in the ingredient list. In fact, anything more than 3-5 ingredients is a red flag. My oats just list oats. My peanut butter just lists peanuts and salt.) I make sure I am getting plenty of fresh veggies and fruit. I make sure I am eating high-quality, preferably grass fed meats, fresh milk and eggs. In short, I try to eat as though I lived 100 years ago, because, let's face it, McDonald's isn't doing me any favors. What I have noticed over and over is that when I eat a sensible, nutrient-dense diet, my cravings all but disappear. Astonishing, huh? Maybe all that food I've been eating isn't telling my body that it's needs are satisfied, so it keeps telling me to eat something else.
My (completely unscientific) theory is this: When my body is getting foods that don't really satisfy it's nutritional needs, it continues to send "feed me" signals, even though I have already eaten -- in other words, cravings. When my body's nutritional needs are continually met, it doesn't have to send those signals anymore. My cravings for sugar, salt, and bread items begin to fade.
Now, this doesn't happen overnight. But usually after one or two weeks, I will suddenly notice that I am no longer salivating every time I walk by the kids' snack bin. Moderation becomes much easier to do (What? Don't tell me you've never sat down to eat one piece of buttered fresh-from-the-oven bread and ended up eating half the loaf? How much you miss.)
So, when I cave to a crave, I try not to beat my self up. I begin to build my body up instead. I overcrowd the bad foods with good foods until the bad foods fall away. It is a gentler, more nourishing way to handle cravings, and it works for me. Now, I need to go eat something nourishing, because I really want a cookie...