As a DM I always rule for the PC's (any PC) when the results of failure are not immediately obvious.
For instance, a search check is always rolled by me. You never know on a search check whether you failed to find anything because thier is nothing to be found, or because you just haven't looked hard enough.
A spot check is rolled by me if the attack is not to be immediate, or by the players if the only result is that they will not be flatfooted if they succeed.
Contested skills are almost always rolled by the player, because while the player may know that he rolled well, he can never really know how well I rolled. So, he can roll a Bluff check, even if the target is going to only pretend to fall for it, because he can never really know what I rolled for Sense Motive, and he can follow up with a Sense Motive roll to see if it worked, because he can never know what my Bluff roll was.
Also, I am in the habit as a DM of rolling the dice whether it is needed or not. If you roll a Sense Motive check against someone who isn't lying, well, I roll my Bluff check anyway and just secretly ignore the result. If you search a room and nothing is to be found, dice will still clatter behind the DM screen and I might even be tempted to shake my head slightly and go, "Sorry, you don't find anything."
It is a very bad idea to base your actions on the meta-game.
I've been doing this too long and have 12 ranks in mislead players.