Bill Simmons wrote a gigantic column about the CBA and what he would do to fix the system. Some of his ideas where better than others, but there were a few I really liked.
He made up some concept of what makes a "franchise player" .. I disagreed with how a franchise player was determined (he used all star games and ALL-NBA teams) I think that every team should be allowed to sign anyplayer from their team to a 'franchise contract' .. The idea being that you can retain your players for more than Max money (Whatever that will be) but having ONLY the max contract count against your cap.
So say Max contracts are 17 million per year, We decide we want to sign DMC to a franchise contract .. it only counts as a 17mil cap hit, but he gets paid more than that. The catch is that he ONLY makes the extra money (anything over 17mil) if he is on the Kings. If he gets traded, his salary goes back down to the base 17 mil.
I think this concept, along with some kind of Franchise Tag, would help solve the "superteam" problem, and help the smaller markets keep their players around.
A Franchise tag is extremely important though .. And I think it woulds pretty well in the NFL, all things considered. Even if the player doesnt sign with the team that franchised him, that team is at least allowed to trade his rights and get something back from the player.
Another idea thats a little out there is taking a page out of MLB's book. At the end of the season, the free agents are broken down into classes ( class A, class B, class C, ect .. ) and if you sign one of those players, you have to give the team you are signing them away from some sort of compensation... something like a second round pick for Class B and below, and a first rounder for class A.
I like the last idea, which is basically a restricted free agency system. I would add that each class has a contract value assigned to it, so that the team restricting him is offering him a multi year contract, maybe three years at MLE level or something. And the teams that are interested in signing him can bid away, but if he signs, they are giving up their corresponding pick in that year's draft (which means that this portion of free agency, if not all of it, happens before the draft).
As for the tag idea, I like the structure. I wouldn't penalize the player by knocking his contract down if the team decides to trade him, though. I would make it so that the Bird team has the right to place a franchise player tag on one player every offseason, which guarantees the player a max year, max value contract, plus an extra year, plus 15% (or 25%, or whatever figure is aggressive enough). And the Bird team only counts the max value against their cap, not the extra 15% (or whatever). BUT, I would still allow the player the opportunity to sign elsewhere for the normal max contract, and just like the restricted free agency, the team signing him would have to give up their first rounder in that year's draft. If we do this, we could also get rid of S&Ts.
Adjustments: Free agency would begin July 1, and NBA Draft would take place on the third Thursday in July. That way, the tags and pick swaps can be applicable for that year's draft.
Practical examples (for next offseason, since we've already had this year's draft): Max contracts are five/four years (Bird/non-Bird), and something like $100/$80 million. Chris Paul is a free agent, but his team places the franchise player tag on him (his cap value would be 75% of the true value of the contract each year). Another team signs him to an offer sheet for a four year, $80 million contract, meaning he's choosing to leave his team and go play for less money and less years than he'd get on his franchise player deal, and the team he's signing with is giving up their upcoming first round draft pick (or, both teams can negotiate a S&T outside of the tag rules, but with the same compensation restrictions). Each team is limited to signing one franchise tag player per offseason, whether it's their own player or another team's player, and they can only sign another team's franchise tag player to an offer sheet if they have a first rounder in the upcoming draft (or work out separate terms with the Bird team).
This would kill the super team issue, also. For instance, the Heat wouldn't have been able to sign LeBron and Bosh in the same offseason. It's actually very similar to the restricted free agency idea I mentioned already.