I used that approach (use of VML,XML and DHTML to display orgcharts) already in my application.
I took the idea from the following MSDN article:
http://msdn.microsoft.com/msdnmag/issues/0300/vml2/default.aspx
The basic approach to display everything in its right place is the use of nested tables. The VML is used only to create rounded corner boxes insted of flat sharp cornered ones, but tables can be used instead to allow other browsers to see them correctly (I use VML because I have IE as a requirement).
In my web app, I even display the Employee's picture and other useful info inside the box. the problem with my implementation is the lack of lines to connect one "baloon" to the other. It only displays the ballons in the correct order one under the other (see the article to get an idea how it looks ... ugh!).
Also I was not capable of displaying asistants on the correct way (under its boss to the side).
I cannot tell if this article is doing it the same way or not, because it's not complete yet, as I write this, but I would love to see if it attacks those problems (specially the connection lines detail).
BTW: I'm starting a rewrite of that module to attack those problems, but I'll probably drop the use of VML and do it just with tables. In this new approach I will use CSS and Javascript heavily. It will also get the XML info dinamically so you don't have to wait for the whole organization to download to see an orgchart of a specific area.