For one, it saddens me that when I travel and need a place to drink coffee/eat a snack and catch up on email, I might be viewed as a "squatter" the minute I pull out a laptop...
I tend to camp out, or "squat," at coffee shops early in the mornings when they have very few customers anyways (true here at least, not in the states of course with more of a morning coffee shop culture). It's never really a problem because I'm gone before it gets busy, but I can see why there would be resentment.
Basically, if you are going to squat, don't go when its busy. Sometimes at night, for example, SBUX might be actually busy, but usually due to other squatters, so no guilt there.
I'm generally not affected by this myself, BTW. I don't go to coffee shops very often, and have only brought my laptop (sans power supply) a few times. The longest I've stayed has probably been a bit more than an hour. I've done more "squatting" at my local McDonalds, which has better WiFi and is practically empty in the mid-morning so nobody cares. However, I consider it a basic rule that if somebody else is waiting for something and you've had your turn then you should yield. If you don't feel that you've had your own fair turn yet, then by all means make the newcomer wait. No problem at all. This is only about the people who seem to feel that they're above that basic rule.
So what can we do?
In my opinion those people are making things worse for the shop and all decent customers, so just kick them!
But after years of "the customer is always right, many people have become so arogant that demanding acceptable behaviour from your customers will definitly kill your shop.