Max contract should be the exception and not the rule. Too many franchise roll over and give players Max contracts when they haven't earned the contract. It seems to be an entitlement that most players expect if they have "potential" or have had a couple of good years. In my opinion there are only a few players worthy of a 100 percent MAX contract. Kobe in his prime, Lebron, Garnett (in his prime) Dirk, Wade are a few. They you have the second/third tier guys that should get a decent contract but not a Max - DW, Joe Johnson, Aldridge, Brook Lopez, Stephen Curry, David Lee, AL, Marion, AK in his prime, Boozer etc.
Unfortunately, too many guys get paid too much money because the team fears they might lose their "star". The players also whine about not being respected and threaten to leave so that also feeds the machine.
The fans get screwed because their team overpays for a player like AK/Boozer and then they have to wait until the contract is up so the team can get more players to rebuild their team. One bad financial move and a franchise can be paralyzed for a decade.