IE9 works well with D3 without any work. For IE < 9, generally it was pretty easy, though we had to do a few extra things we needed to work around:
1. remove the use of SVG groups which are not supported in VML (though I think r2d3 has had a recent update with some level of group support)
2. Avoid selecting features paths by class (e.g. us d3.select('path') instead of d3.select('path.state') Class selectors just wouldn't work for us.
3. for performance, we used only the most simplified geographic data in IE < 9 4)
4. Avoid using d3.mouse for mouse location. Didn't work right in IE
I'd like to know more about the SVG / VML fallback for rendering. We are working on a system where we are doing SVG directly and have a "TODO" for figure out how to get it rendered in IE
Personally, I loved the narrative. Which I mention not to suggest you shouldn't want something else, but so that the authors know that people liked it as is.
1. remove the use of SVG groups which are not supported in VML (though I think r2d3 has had a recent update with some level of group support) 2. Avoid selecting features paths by class (e.g. us d3.select('path') instead of d3.select('path.state') Class selectors just wouldn't work for us. 3. for performance, we used only the most simplified geographic data in IE < 9 4) 4. Avoid using d3.mouse for mouse location. Didn't work right in IE