For "uncertain" rolls (ex: you search for hidden microphones in an espionage game, how can you be sure you found all that were hidden?) I use a double roll:
1 roll is made by the active player. Another is done, secretly, by the GM, using absolutely the same type of dice, bonuses etc.
If both roll a success, the GM gives full result (e.g.: lists all the bugs)
If both fail, the GM gives completely false info (e.g.: "you don't find anything" while there is at least one working bug in the room)
If one succeeds and the other fails, the GM gives partial information (e.g: "you find a bug behind a frame on the wall" - but there are two others and the player won't be informed).
This way, the player may be more or less confident of the result (i.e. if his roll was a success, he knows he is getting at least a partially correct information) but doesn't know "for sure".
I have used this technique for ages, and I think I read it in some old manual, possibly MegaTraveller, but not sure anymore.
One more thing: in the past, for example using Basic Roleplaying, I toyed a bit with the idea of making a translation table for "secret" rolls.
I.e. I wrote a little computer program that "shuffled" an array of numbers from 1 to 100, and printed it out with the position alongside the original value... e.g.:
01 - 78
02 - 06
03 - 18
100 - 21
so when I needed the player to roll for something with an "unclear" outcome (classically a "spot hidden" roll to find a clue) I had him or her roll, and then used the scrambled result to adjudicate the situation... in the example above, a roll of 01 (which is considered usually a critical success) would be "mapped" to 78, which is pretty bad for an average character.
I understand that most modern systems use dice pools or some other "funky" dice mechanism so this may very well be impossible to do properly.