I honestly think that there is only one fair response to this - and it's not pretty, but it would work.
If the NBA is serious about giving every team a fair chance, they need to find a method to set a "agreed minimum market value" on players.
Here in Oz if you sell somebody a car, that person has to pay transfer of registration, which costs 3% of the vehicle purchase price. To avoid dodgy deals (where people put down they were "gifted" the car to avoid paying transfer fees) the vehicle registry sets a fixed minimum market value on all vehicles. You can list you sale price as being above the minimum value no problems, but if you list it as being too low they will ignore your claimed sell price and automatically put it down as market value.
I think the NBA needs to apply a similar concept. Certain guys with certain levels of talent, will have a "minimum market value" attached to them based on production levels, age, etc. Teams can pay above that minium amount to sign the player if they so choose, but cannot pay less then that value.
This way you could, for example, say that based on Evan Turner's production last year, he should have a minimum market value of say, the full mid level exception - or for argument's sake, 10% of the cap. If this is the case, then no team can offer Turner a contract less then 10% of the cap - which, this year, would mean $9.4M per year.
If this is the case, then star studded teams (like the Cavs and Warriors) who have less then $9M in cap space, would not be permitted to sign players of that caliber - they could only sign players who the NBA deems as having "veteran minimum" market value.
Not sure how the NBA would determine these values in a way that would be fair...but it's the only method I can think of that would put a stop to these situations.
It would force teams to make very careful decisions about how they balance their rosters - if they fill it with 3 or 4 stars then they may not be able to build a competitive support group around them...and may risk getting beaten by a team that has maybe two stars, but a deep and solid group of support players.
Another benefit of this I guess, is that it gives players more opportunity. Young and unproven 'min contract' players might be given a decent opportunity on star studded teams, and you might see some kids who otherwise wouldn't get a chance start to shine. This would give teams an incentive to really scout the young talent out there and try to pick guys buried on benches who might be hidden gems.
Like i said, I've got no idea how the logistics would work - how you who would calculate minimum values for different players, etc, but I'm sure there would be a way. Maybe you could have a team of league talent scout's whos job is to agree on these values - no idea.