theogeer
1) Stupid Developers. There are lots of developers out there who are lazy and stupid in the bad way. They just go with what they know and don't even begin to consider a larger audience. Think of all the uber-limited lists of job field boxes, of the limited gender-identity options on sites, of the idiocy of requiring an address for registration to a newspapers comments in the first place!
2) Ignorant or unthinking management. People who make the developers require all that stupid information in the first place. They do it because they don't really understand that they're actively deterring business. It's a problem with business models all over. Business leaders often don't realize that they're making it hard for their customers, and that makes their customers unlikely to be customers for long. If someone would sit them down and explain to them the horrors of interface friction, and truly make them understand, I think things could get better quickly.