> The reasons mostly have to do with ... lots of well-tested libraries ... lots of people who've already had any problem you're likely to encounter, as long as you're doing things in the obvious way, etc.
Economics has given us the wonderfully pretentious sounding term "positive network externalities" to describe products that become more valuable, the more people who use them. Simple concept, big, impressive term.
http://www.welton.it/articles/programming_language_economics
Many languages have this kind of community IMO. After a certain size, it doesn't matter really how big the community is because there is enough to sustain help. After a certain point, it only helps in finding specialized sub-communities which need to be that minimum size too. I think almost any language that a person here would consider for some project or another has that community, and you'll really notice the difference w/ languages that don't. For example, SML is a language that is so tiny that you can really notice the lack of community (and free documentation...) compared to, lets say, python, or objective-c.
These things together mean that using a popular language in the way that most people use it is easy -- it's the path of least resistance in a lot of instances. Using languages that are cool, have neat features (or the ability to build them), and/or have higher abstractions is fun for play, but it turns out to feel like you're swimming upstream when you have to do the boring requirements-laden task that you've been handed.
There's more than one reason for that, but collectively they add up to why I use PHP for things I just want to get working quickly, or for job-like things, and lisps or other small-community languages when I'm doing something just for fun.