I found this article at the hardball times
very helpful when designing my league.
For me, this was the best system:
Lastly, I like the idea of keeping 4 players, with the added price being tacked onto them ($1,4,7,10). There’s definitely a bit of regression there, in that you clearly can’t keep all of your ridiculous deals forever. But, if you really like a player, you could keep designating him your +$1 keeper each year, to ensure he stays on your team. Tons of strategy potential here, I like this a lot.
I have a similar idea in place in my league. What I do is that we have 5 keepers per year, but each keeper gets a "contract." Each manager gets to keep one player 5 years, one 4 years, etc. Last year my keepers were: 5 - Ryan Zimmerman, 4 - Adrian Gonzalez, 3 - Cliff Lee, 2 - Dan Haren, 1 - Nelson Cruz
So this year I cannot keep Nelson Cruz, and all of those guys move down a slot. I drafted Strasburg late in the draft last year knowing that I would want him as my 5 year keeper this year.
Logic: I wanted to keep the draft strong each year, but I also wanted a way to have your favorite player with you for a long time. Plus this adds some level of complexity come draft day because there is an outside pressure to pick a younger player who you feel will be a worthy 5 year keeper. For example, another manager picked Adam Wainwright the round after I picked Strasburg. Not too complicated, but not too simple either.