You have to swap your favorite less-nutritious foods for healtier options, so you don't feel like you're missing something.
For example:
This
Instead of
that
This has never worked for me, but I certainly assume it can for others.
I prefer eating exactly what I want, on a limited basis. Right now I am staying on a daily calorie count, so if I know I'm eating a buffet or donuts I limit the calories the rest of the day, and make them super nutritious to make up for the empty calories. Working pretty well, and makes those cheat meals more enjoyable, I don't have to worry about it.
I try to make 18 of the 21 meals I eat throughout the week fairly healthy. The other 3 I splurge. I also never go into a restaurant aiming to eat healthy, waste of money I say. If I'm paying inflated prices for being served, I want to enjoy the food/drink. If I can find something that is healthy/cheap/good, I'll do it, but that's nearly impossible. Say you go to a steakhouse and order a sirloin salad. Good choice health-wise, but probably overpriced. Then, are you going to give up the free rolls? Not a chance, in my case.