Around the turn of the year, Al did some thinking on non-variable damage. He got me thinking and this is the to-hit and damage system my Skype campaign recently switched over to:
Roll a d20 to hit, as normal. If you roll a natural 1, roll on the Arduin Critical Fumble Table. If you roll a natural 20, roll on the Arduin Critical Hit Table. If you hit, but without a natural 20, roll for damage as follows.
There are three types of weapons: Light, One-Handed and Two-Handed. They can either be Melee or Ranged (or sometimes both). Ranged weapons each have a range increment, with penalties to hit if targets are farther than one range increment away.
Light weapons are the relatively wimpy things that Magic Users are allowed to use. Darts, slings, daggers, etc. They do 2d6 damage, take the lower result.
One-Handed weapons are pretty self-explanatory. They do 1d6 damage.
Two-Handed weapons are also obvious as to definition. They do 2d6 damage, take the higher result.
Dice explode; if you roll a result of 6, keep the 6 and roll again. Add that result to the total amount of damage inflicted. If you are rolling two dice, roll them both and take the lower or higher result, depending on your weapon type.
If a character fires into melee and doesn't hit the target, the referee rolls to determine which other character in that melee has a chance to be hit. The player then rolls to hit that other character, with standard to-hit chances and damage. If that "attack" misses as well, the missile is deemed to have passed through the melee harmlessly.
Monsters fight in exactly the same way, except that their damage may or may not be based on a six-sided die.