Yes, it IS a very hard thing to do. Sometimes when my kids were little and I was intently making sure that I didn't let them win a showdown, I would say to myself, "God promises that He won't give us more than we can handle, and I believe He matched me up with these four children, so He will give me the strength to follow through." That usually worked for me.
That being said, as a parent, you have to pick your battles. You can't have a showdown about everything or you lose credibility and you wear yourself out. I wasn't a perfect parent by any means, but I did give my kids a lot of room for self expression. I told them that they could say ANYTHING to me, express ANY feeling or opinion, as long as they did so respectfully. They were free to disagree with me, be mad at me, argue, etc. as long as they did it in a responsible, respectful manner. Open door policy.
So if they wanted a Happy Meal (or whatever), they could say so. They could make their argument. And sometimes they would have a point. OR - their reward for being logical, calm, and respectful might BE a Happy Meal. If that was the case, I would say something along the lines of, "OK, here's the deal. I think Happy Meals are crap. But you know what - you've impressed me with your approach. Let's go get that Happy Meal. This doesn't mean you'll get it next time - in fact, you probably won't get these very often, because we just aren't going to make fast food a habit in this house because of cost and general unhealthiness. But once in awhile, it won't hurt us. Let's go! And THANK YOU, by the way, for being such a great kid and for expressing yourself so responsibly."
This really worked with my kids. To this day, we have a very open line of communication. Without exception, my kids feel very free to express their opinions, ideas, etc which are sometimes in direct opposition of my personal beliefs or choices. And I greatly respect them for their independence and integrity, even when their choices aren't the ones I would make.