I've only ever had one problem player. He whinged and whined at every ruling I made against him or the party at large. He had no interest in learning the rules but would criticise me for not wanting to change them. Yep, this player wasn't saying I was wrong in my interpretation of the rules, only that I was wrong for applying them where they had a negative effect on what he or the party wanted to attempt. He never appreciated those moments where rulings went in his favour. He would speak to me outside the game and tell me how unhappy all the other players were with my DMing (and that I was the worst DM he had ever known). The last time he played with us, I made a ruling that had a significantly negative effect on the players and he let rip. But when he turned to the other players for support, he got none. In fact, one of the other players said to him, "In my other group, this wouldn't even merit discussion."
It really does only take one person (player or DM) to derail things. Now my ex-problem player has moved on to pastures new, we just don't have issues any more. We do have interruptions regarding my rulings but I'm lucky; these are all polite and brief.
"Are you sure about that?"
"Why's that?"
"I thought..."
I actually feel supported by my players, because of the way they challenge me if they think I'm wrong. And on those occasions where they've been able to quickly point out my error, I've been as quick to take the correction on board. In other words, I don't feel defensive.
I guess the best bet is to explain to players up front that you want to keep rules challenges in-game to a minimum and have an established protocol for dealing with them. There will be those who agree to these table rules but then ignore them when the game gets underway but, once they make themselves known to me, I cut them no slack, because of the effect I know they have on the whole group. I'll remind someone a couple of times how I like to handle disputes. If they can't adapt after that, they're gone.