I think alienation causes these shootings. These things didn't happen when everyone knew their neighbors and generally lived and died within a few miles of where they grew up. Now we have a society where people live on little islands to themselves. Combine that with Americans' selfish sense of entitlement and need for celebrity, and when one snaps, he feels no self restriction in shooting up someone else's island.
These will happen more and more as we raise kids who don't interact in person, but rather live life vicariously, and alone, through violent video games and television.