I prefer mission-based levelling, or mission-based XP. The latter for its flexibility, the former for its simplicity.
The former basically goes: If you complete your mission, you gain a level. Huzzah!
The latter: If you complete the primary objective the party divides x XP, and for each secondary objective, the characters involved get y or z XP divided amongst them. Particularly abysmal failures could lead to XP penalties for those involved.
For instance:
Convince Graghbok's horde to attack the Republic of Darkhald - 10,000 XP/entire party
Eliminate the thread of Graghbok's orc horde - 5,000 XP/entire party
Destroy Graghbok's entire castle - 2,000 XP/participants
Kill Warlord Graghbok - 2,000 XP/participants
Convince Marshal F'kagh to turn on Graghbok - 2,000/participants
Convince Shaman Lord Ooglith to turn on Graghbok - 2,000 XP/participants
Destroy Graghbok's entire armory - 1,500 XP/participants
Kill Helltearer, Graghbok's t-rex mount - 1,500 XP/participants
Rescue Princess Elzabet of Lormaine - 1,500 XP/participants
Rescue Chancellor Pelman of Lormaine - 1,000 XP/participants
Kill Marshal F'kagh - 1,000 XP/participants
Kill Shaman Lord Ooglith - 1,000 XP/participants
Convince a tribal chieftain to turn on Graghbok - 1,000 XP/participants
Implicate Darkhald in the attack on the horde - 1,000 XP/participants
Steal Graghbok's battle plans - 750 XP/participants
Rescue Vice-Chancellor Greymont of Lormaine - 750 XP
Destroy Graghbok's blackpowder stores - 750 XP/participants
Rescue Lady Greymont, Elzabet's attendant - 500 XP/participants
Kill a tribal chieftain - 500 XP/participants
Rescue the other captives - 500/XP
Be caught by the orcs - -250 XP/PC
Allow Lord or Lady Greymont to die - -250 XP/participants
Implicate the Kingdom of Lormaine in the attack on the horde - -500 XP/PC
Allow Elzabet or Pelman to die - -750 XP/participants
Allow the orcs to launch their attack on Lormaine unmolested - -1,000 XP/entire party
Convince Graghbok and Darkhald to ally against Lormaine - -2,000 XP/entire party