Way back when, when 3E first came out my group had this discussion. General consensus was, it should always be possible to fail at anything or succeed at anything, but a flat 5% chance is way too much for some situations.
We were going to use the +/- 10 system, but thought of something more interesting. It goes like this.
> If you roll a 20, roll again, and add to your previous total.
> If you roll a 1, roll again, but this time subtract from your previous total.
So far so good? It's simply replacing the flat +/- 10 with a d20 roll. A -19 (1 followed by 20) will fail practically anything, and a 40 will succeed at almost everything.
Note that if you were trying to beat something with a moderate DC, say, DC 15, and margin of success was meaningless (saving throws for example), you can choose not to keep rolling, so it's not going to slow the game down substantially.
We also tried to extend it like this:
> If on the "bonus" roll you roll a 1, you reverse direction and roll again. That is, if you had been adding, subtract the next roll, and if you had been subtracting, add the next roll.
> If on the "bonus" roll you roll a 20, add/subtract it in the direction you were already going and roll again.
This'd allow you to (in theory) have rolls infinitely high, although it'd be horrendously unlikely to get anything above a 40.
So let's say I roll a 1. On the next roll I roll a 20 (putting me at -19). The roll after that will still be a subtraction, so the third roll (let's say a 13) will bring me to -32.
In the end it was a bit too much of a headache, so we just do the first part for most situations, and let the player continue to roll if he really wants to. It isn't a lot of rolling; Average of 1.1111 rolls per d20, while without that last part you still average 1.1. Not much of a difference.