This is based on something I saw in a tournament report from the Noble Park Chess Club in Melbourne, although it may have also been tried elsewhere. Instead of scoring each game as 1, 1/2, 0 you score the game based on rating differences between the two players. The higher rated player always receives 1 point for a win (and 1/2) for a draw, and the losing player receives 0 for a loss, but in the case of an 'upset win or draw, the lower rated player may receive more points.
For example, a player wins against an opponent rated 125 points above them. As the expected score is 33% (or 2-1 in favour of the stronger opponent) the lower rated player would score 2 points for a win. In the case of a draw it would be 1 for the lower rated player, with the higher rated opponent still receiving 0.5.
Of course this is a system that essentially rewards upset results, although it does not prevent the top seeds from doing well. Probably suitable for a fun blitz event, or even as extra handicap prizes in other events, but clearly not as a replacement for more traditional scoring systems.
Here is the scoring table (based on possibly inaccurate back of the envelop calculations).
To keep the numbers sensible only multiples of 1 and 0.5 are used (ie no quarter points)
Rating diff W D
>0 1 0.5
>72 1.5 0.5
>125 2.0 1.0
>158 2.5 1.0
>193 3.0 1.5
>211 3.5 1.5
>240 4.0 2.0
>262 4.5 2.0
>273 5.0 2.5
To calculate these numbers simply divide N/(N+1) and look up the percentage on the standard ELO Dp table. Interestingly the gaps between the each score group get smaller as N increases.