You might be surprised to find out how many people fail in one, if not multiple of the points you mentioned. Take, for example, me:
IPv6 Capable operating systems: Not really. I run Mac OS X 10.6, which, wile "IPv6 capable" does not have support for a critical IPv6 component DHCPv6.
IPv6 Capable router: Not really. My router does not support IPv6 without some serious hacks. Plus it doesn't support DHCP-PD at all.
IPv6 Capable cable modem: Yes, but only because I just (two months ago) bought a new modem.
IPv6 Capable internet service: Yes, and it's been available from my ISP for a long time.
The major problem with the majority of devices is not the "first level" IPv6 support (e.g. ability to get an IPv6 address via SLAAC) but second level and beyond (DHCPv6, etc). IPv6 is a protocol which is still very young and not "fully" supported by most software/hardware, mostly because it is still changing. It will be a long while before IPv6 has the maturity of IPv4. I just laugh when I read marketing drivel with statements like "IPv6 supported!" because until they provide more details, I just assume that it means it can self-assign a link local address and that's all.