I've spent a bit of time over the last week looking into the details of IPv6, the next generation protocol planned to replace the increasingly dated IPv4.
I've no doubt that there's a chicken and egg problem here - no adoption by ISPs due to lack of demand, no demand because no ISPs support it. Even so, I couldn't understand why, given the desperate shortage of IPv4 addresses, there wasn't some movement in this direction. And then it struck me; this stuff is really hard to get a handle on. Holding a degree in CS, I was surprised by how much reading I had to do before I fully understood what it was all about. Router discovery, neighbor discovery, no more NAT - all great features - but a little daunting at the outset.
There's a unusual situation here where it's currently easier for the end user to make use of this stuff (works in XP out of the box for example) than it is for a network engineer. Usually, software development is a battle to de-developerize an interface to make it intuitive for the normal person. Before IPv6 really makes a mark, that same effort is going to have to be made to make this more accessible to the basic network architects.
Sadly (and I'm speaking more generally now too), tolerance to good enough is far too high and many great ideas are ignored or postponed just long enough until there's something better to hold out for.