The reason is probably a perceived improvement in security. I've worked in systems where they've done this for security reasons. I believe Joel Spolsky did it for this reason when he was betaing a release of product (FogBugz?).
It certainly does jack up the maintenance overhead. I wouldn't design a system this way myself.
I'm really curious if this is in fact a common practice out there in the wide world.
A bit of automation would solve this problem,as far as I can see it.
"I'm really curious if this is in fact a common practice out there in the wide world."
It is. I've worked for companies which do this, and have scaled with Oracle for several tens of thousands of customers (=databases).
Also, complex reports that require hand-coded SQL becomes that much simpler. (Compared to having all customers' data in a single database)
Or am I missing something?
There is also the customer perception thing, as petethomas said in this thread.