The dynasty league I'm in has a ton of twists:
At the end of each season, teams are awarded money in the form of "cyberbucks," last place gets the most, etc.
When you want to pick up a free agent, you bid this money on them. Top bid wins.
Each team must assign all their players a contract specifying the number of years before they become a restricted free agent, the catch is that the total number of years your contracts are worth may never exceed 35 for the whole team combined, and no player may have a contract length of more than 7 years.
At the end of the season, the years left on everyone's contract decreases by 1. Players who's contract is at 0 become Restricted Free Agents.
Of these RFA's, you may declare 1 on your team as your franchise player who is automatically resigned to your team (and the contract length you sign him to must be at least the length of the average contract length among the top 3 players at that position). You may also declare one transition player, for which during the RFA bidding process you must only match bids on this player rather than having to beat them.
Then, on May 1st, after the rookie draft, the RFA bidding process begins in which all RFA's not designated franchise players are open for bidding.
It adds a nice little twist because you have to strategize out your contract signing such that you don't have too many good players contracts running out in the same year since you can only franchise one per year, while at the same time keeping your total cap below 35 and conserving enough money and contract space to be able to sign free agents during the season.
Here is a link to the complete rules set, you may want to try it out: