Hi I tried all solutions nothing worked for me assigning a particular ringtone for my contact in my HTC HERO. I like to organized everything and I organized my contacts by group (family, co-workers, friends, etc).
I found out that when contacts are not classified by group it takes the default ringtone, no matter if you see the ringtone assigned in the contact information. But when you classified that contact by group and assigned the ringtone it recognized the particular ringtone. It really works.
First you have to choose the song and save it as a phone ringtone, not as a contact ringtone. Then when you have already assigned your contact to a group you are going to edit your contact information assigning the ringtone. I hope it will work for you. Please let me know.