There's also the exploding die system. In it, 6es and 1s are handled by rolling another die to determine what happens. A 1-->4 to 6 is a standard failure, a 1-->3 is a mild critical failure, a 6-->1 is a powerful overshot, while a 6-->5 is a critical success. Bonuses aren't applied to the first roll in the event of a 6 or a 1, but the second one - so if you had a bonus of +2, then a 6-->2+2 would become a mild critical success rather than a considerable overshot, while a 1-->1+2 would become a critical failure of much lesser severity. Same applies the other way around: a 1-->1-2 would be a complete disaster, and 6-->1-2 would start to approach a critical failure in its consequences. Meanwhile, a 5+1 would still be a mild critical success, so as to not punish a higher skill level, and a 2-1 would be a standard failure.
Now, that's the method I use in most of my more involved games. There's also another method that hasn't been mentioned, which is what is used in ER.
In ER, the rules were relatively recently overhauled due to a number of reasons, and now bonuses don't apply to rolls, but to their interpretation. The d6 is almost always rolled unmodified, and the skill level merely indicates the consequences of each roll, tending toward non-disaster for the extremes and toward higher degrees of success for the middle bits. It's much more based around subjectivity and guesswork than the exploding die, but that can easily become an advantage in the correct context.
Finally, there's the practice of allowing two levels of bonus - the regular kind that contribute to overshots, and the dynamic kind that can act as a +1, 0 or -1, whichever brings you closer to 5. It's got all the hallmarks of an obvious rule patch, but it does work, sort of. Tends to trivialize rolls if the bonuses do pile up (and aren't balanced by appropriate contextual penalties).