If I create a new Contact record manually in CRM 2011, the currency fields get created properly, the "$" is visible, and I can populate those fields and save the record.
If I instantiate an IOrganizationService and create a Contact record programmatically, everything works except the currency fields. No error is generated that I can see; the record gets created, all other fields are populated but the currency fields are left blank.
If I try to update those currency fields manually after creating the record programmatically, I get this error: A currency is required if a value exists in a money field. Select a currency and try again.
My user record is set with a currency = US Dollar.
Why is this working in CRM but not in C#? What do I need to do to get it to work?