I can tell you one reason IS-IS has been traditionally preferred over OSPFv2 is due to it's use of TLVs, which makes IS-IS highly extensible and easy to support new features. I remember when we first rolled out MPLS code on our core routers at UUnet, support for traffic engineering extensions made it into IS-IS long before OSPFv2 due to the ease with which the developers could augment the protocol. Opaque LSAs in OSPF have made this situation a bit more bearable, but other things like OSPFv2s tight integration and reliance on IPv4 addressing for proper operation cause other issues, therefore support for things like IPv6 requires an updated protocol - OSPFv3. If you are running IPv4 and IPv6 in your network you'll need to run both OSPFv2 and OSPFv3. IS-IS on the other hand, since it is CLNS based and not coupled with IPv4 for transport can support IPv4, IPv6, and whatever new protocol we'll be using whenever we run out of the trillions of IP space that IPv6 will provide.
Sorry for the typos and the top-posting, as I'm on my crackberry.
Neustar, Inc. / Principal Engineer
46000 Center Oak Plaza Sterling, VA 20166
Office: +1.571.434.5656 Mobile: +22.214.171.1245 GPG ID: 0xB5E3803D email@example.com