I wish I could remember who proposed these things, but on this board (well, okay, about two boards ago) someone came up with a system I liked. It was a variant on the +10/-10 thing the DMG proposes, but was based on the concept that ANYTHING should be possible given enough time.
If you roll a 20, roll another d20 and add it.
If you roll a 1, roll another d20 and subtract it.
So far so good, but the trick is, you keep going. If they get a 20 on the second roll, they roll AGAIN, continuing in the direction they were going (i.e., if you rolled a 1, then roll a 20 on the second roll, you continue subtracting).
If they get a 1 on the second roll, they reverse direction and continue.
It's theoretically possible to get insanely high rolls if you roll several consecutive 20s. It may sound like a lot of rolling, but it's not that bad; you'll just average 1.11 die rolls per.
The point was, everything should be possible, but in 3E the minimum possibility is 5%, which is just too high for some things.
Apply this method to everything: attack rolls, saving throws, Psionic save DCs, skill checks, ability checks; pretty much anything that uses a d20 except monk fist damage.