It all comes down to which side of the argument you are on. Is the All-Star game played for the fans or should it be a reward for the players that are having a good year?
I agree that Shaq shouldn't be on this year's team when he has played very little. That's what happens when the fans vote, though, it just becomes a popularity contest, especially with the younger voters, who often times probably actually watch very few games.
On the Shaq situation, they could put in some type of rule that to be elligible for the All-Star game that the player has to have played a certain percent of their team's games.
Personally, I would like to see it be a reward for the players that are having a good year, and not have basically the same rosters every years. To help the overall situation, maybe they should look at implementing a voting system where the players vote as well and their votes would count as 33% or even 50% of the final vote. Just an idea, but I usually watch very little, if any, of the NBA All-Star game anyway.