A Fix involving Groups
The fix suggested above didn't work for me, perhaps because I have Lion, which apparently doesn't have iSync.
What did work was discovering that moving to Lion had created, without my permission (Lion does a lot of things without our permission), a new group called iCloud, assigning all my contacts to it.
For my 3GS, that wasn't a problem. It's running iOS 5 and synchs nicely through iCloud. But my 3G can't run iOS 5 or iCloud. With no contacts in my All on My Mac group, there was nothing to synch and an empty Contacts database where one had once existed.
The fix was to select all my contacts with Edit-Select All and then drag them to the On My Mac group. That puts them in both groups. One group (apparently) synchs with my 3G via USB and the other with my 3GS via iCloud. It's clumsy, but it works, although I'll probably have to make sure new contacts are placed in both groups.
This probably illustrates a major difficulty with Apple's testing procedures. They and most of their elite circle of beta testers run the latest gear and the latest OS/iOS. Few are mixing old and new versions of OS X and iOS. There wasn't the slightest problem with my 3GS, which is still supported and running the latest OSs. There was a major problem with my 3G with my iMac running Lion. An iPhone without a contact list is almost worthless.