I work for a company that provides E911 service for VoIP providers. I won't get into all the details but there are quite a few misconceptions so far on this board. The big problem with VoIP, other than the fact that we can't determine where you are (unlike wireless where at least we know your closest cell tower, if not your GPS or location via triangulation) is the totally nomadic nature of the device. Right now if you don't tell us where you are we have no clue. You could be in Australia. There are lots of technical proposals for this (DHCP sending Geopriv location when you get IP, etc.) but none are there yet.
A basic primer: the E911 network is actually a separate network. The local Wireline End Office switch has dedicated trunks to a 911 tandem (aka Selective Router), which has dedicated trunks to a set of PSAPs (local 911 call centers). For wireless the wireless carriers simply ordered dedicated trunks from their local MSC (mobile switching center) to these selective routers. Obviously, Vonage does not have a local presence. They had to figure out a way to connect to all 650 selective routers nationwide from their data centers. Imagine now some local startup in Florida that has to connect redundant T-1s (the requirement of the ILECs like SBC in order to have E911 access) to all 650 selective routers. It ain't going to happen in 120 days.
Wait, we're not done. The next issue is how to transmit the address of the subscriber to the PSAP real-time. The wireline E911 databases hold static addresses under the assumption that you never moved. This doesn't work when you can move your device. If I live in Texas but travel to Chicago for work (and go to the website to update my address) how do I get the address into the right system real-time? These databases are mostly managed by the ILECs and there are probably 50 or so out there, each totally standalone. The legacy 911 service order processes of the phone companies for order flowthrough typically take a few days.
Fortunately, the wireless carriers figured out a solution: real-time steering from the local 911 database to a central datastore which transmits the location. For wireless the X,Y coordinates are transmitted. We piggy-backed off this standard but had to modify it to support civic locations (well, MSAG, but that's another essay). Of course, the ILECs (SBC, etc.) required new agreements for this. It also requires a new query key assigned for VoIP so everyone knows this is a VoIP call and the carrier to call in the event of a problem. This query key lets the local 911 database know which provider to query. This query key also gets around the constraint of the selective routers that only support local rate center NPA/NXXs. Basically, if you have a Chicago number in Dallas you can't get your call through. A p-ANI was developed for wireless to get around that.
Here's the problem: the query keys must be assigned to each provider. These are called ESQKs, or p-ANIs in the industry. The FCC was supposed to name a numbering authority to distribute these keys to all the providers. The industry recommended Neustar as the temporary RNA. Until this is done noone can provide true E911. Well, the FCC has been silent on this so we have all been in a Catch-22 situation.