Please refer to my earlier post
http://androidforums.com/android-applications/35493-google-voice.html#post256819 in this forum. Actually, might be good to repeat:
Google Voice is no doubt confusing. I have only played with it on the Hero and not the Nexus One - so the version on the Nexus might be different. My observations:
Google Voice (in general) has nothing to do with VoIP. Forgetting the Android aspect for a moment, if you login to your GV account and make a call from the website, it will connect the dialed number to whatever phone you have registered. Lets say you register your home phone, cell phone, and work phone. You can go to the website and initiate a call to wherever you want and have it connected to your work phone. That has nothing to do with VoIP, though Google are probably carrying it over IP in the network somewhere.
There are multiple ways to start a Google Voice call. You can go to the Google Voice website as described previously, but obviously that requires an Internet connection. Ultimately, you're trying to connect two landline phones so they needed another way. The solution is that you can call your own GV number and after entering your PIN press 2 followed by the destination number. Details are at
Making calls : Calls - Google Voice Help
Here comes the Android part. Using the GV app from Google, you have to go into the settings and choose which calls you want to use GV and which ones you want to be normal. IIRC, you can choose to have all calls us GV, only international, or for the phone to ask you every time. You still make the calls through your normal phone app or contacts manager just like any other call. The key here is when you choose to have GV initiate the call, it will use the second method I described (calling your GV number). It does not use the data connection/ website to make the call. You are in no way using VoiP or your 3G data connection. (ok, well - I think there is actually a little something going on over the data connection, but your phone is still basically making a regular call).
There are two ways that I know of initiate a call over the data connection. First you can go to the GV website on your Nexus One. Go to the contacts list on the GV website and you can initiate the call. Your cell phone will ring first and after you pick up it will connect you to the destination (just like the work scenario I described earlier). Second, there is another app in the market called GV something. Just search for it. It has an option in the setting to initiate the call over the data connection. I think you select "call box" or something like that. These two solutions only initiate the call over the data connection. The voice is still a normal call and has nothing to do with voice.
As for all the VoIP talk, if you do some advanced things you can actually get the voice going over your data connection too. If you have a Gizmo5 account, GV can be configured to forward calls to you Gizmo5 number (just like it will forward to your work phone). However, now that Google bought Gizmo5 they have closed it to new accounts. There are other ways that are a bit more complicated and require you to have a SIP account provider (like sipgate.com) and a SIP client on your Android phone (like sipdroid).
Hope that helps