How can I set a custom ringtone for a contact when using Google Voice? I use Google Voice for all incoming calls. When someone calls me, their contact information (picture, phone number, name) shows up on the screen. However, the ringtone that is used is not the custom ringtone assigned to that contact, but the default ringtone. What can I do?

My phone numbers are currently stores as ########## with no leading 1. I'm not sure if this matters.
I would first test by adding a 1 to a number and having them call you.  Android should be smart enough to treat them identically but Google Voice might not play nicely.

I'm not sure of the specifics of how GVoice works, but keep in mind that your contacts are calling Google and Google is calling you.  Somehow they pass on your contact's number, but it's spoofed, and your phone is probably relying on the "real" number (i.e. Google's number) for choosing the ringtone.