I think the guys in my league love the contract stuff. It gives you a lot more to do and think about. It also makes it very straight forward to use an auction for the vet players which is a better way of distributing them than a draft, if you ask me.
How complicated you get is up to you. Ours is probably shading towards complex but I'd like to think we stopped just short of it. We have 3 year contracts. After year 2 you can give a 1 or 2 year contract extension that includes a raise that goes into effect right away. When a player has played out his contract you can either let him go into the free agent pool, or you can franchise or transition tag him, which carries with it a minimum tender. We have a tagged player auction where teams can bid over the minimum tender... the tagging team then has the right to either match the winning bid and keep him, or let him go and get rookie draft picks as compensation. We do see movement there... Braylon Edwards and Jason Witten were both picked up by new teams who gave up the draft picks for them, while other teams had their player bid up and then kept them at the new price.
We kept the rookies in a draft so bad teams would have an advantage in acquiring rookies, and because in a hard salary cap league it can be hard to match up value in trades... having the rookie picks as something that can be included often is what allows a trade to be palatable to both sides.
In general we see players being turned over around every 3 years. But teams also are willing to cut players mid-season who are overpriced, hoping to either get them back for cheaper in blind bidding waivers, or if not let them go and use the money elsewhere.