IPv6 is a cinch. It's the associated legacy from IPv4 that's the problem.
You can enable IPv6 transport with a handful of commands/clicks for any relatively modern OS (even Windows XP). You can ping6 websites and view them. That's the easy part. Any idiot can get that far in ten minutes.
What about your firewall config? You have to update all of that (whether it be iptables or Cisco commands or whatever) and make sure there are no holes. That's no small feat. Especially given that there are "ipv4 equivalent" ranges in IPv6 that, well, you should treat just like they were the appropriate IPv4 address. Your firewall scripts just got a whole lot more complicated.
What if you have custom scripts, hole-punching setups, SSH blacklists, VPN's, DMZ's, etc.? You just added a whole new layer of nightmare to your conversion (i.e. has anyone yet worked out how to use OpenVPN to tunnel IPv6 packets from Windows to Linux? You can do it, but it's FAR from easy in certain modes.) Or how you handle the intermediary conversions? Can you have IPv4 clients tunnelling IPv6 and vice versa and every combination in between?
IPv6-enabling your services? One line in the config file. IPv6-enabling your DNS records (don't forget that you'd need an IPv6-accessible mail server at some point too, etc.)? Easy enough. Making them *work* for users? That's the tricky bit. Are users getting to your site at all via IPv6 or are they just sitting at a blank screen their end? How would you know? Are their OS's just falling back to v4 because you don't have some record enabled at some point? Are your upstream DNS servers IPv6 compatible? Are your nameserver records for your domain available in IPv6 format at all?
Any idiot can *enable* IPv6. The question is: Have they done so sensibly, securely and so that it will work for everyone? And that's a much more important question. Enabling Apache to serve content over IPv6 is a cinch. Securing your firewall to the same standard as your IPv4 one so that it *can* serve that content safely is easily overlooked and yet a very difficult task.
And that's just the external face. What about the internal? Does your fileserver support every action from obtaining a lease, authenticating and filesharing over IPv6 for all of your clients, even remote ones?
IPv6 is an enormous headache. Sure, it's not insurmountable but it's not as simple as just throwing a switch in any way. I'm very disappointed that there's little-to-no mention of, e.g. appropriate firewalling of an Internet-facing server when it comes to IPv6 enabling it. Classic case of "do now, think about the consequences later".
And, for the record, I have IPv6-enabled all my domains and they do serve HTTP content over those channels and do so as securely as the IPv4 access on the same servers. But I still only ever use / login to it by IPv4 and have yet to see a single genuine IPv6 visitor.