Even though there are a few things about Microsoft CRM 3.0 that I do not like I have to admin they really impressed me in one area....customization. Not only do you have the ability to add new fields to various entities like Lead or Customer, but the actual web service that you call to interact with these entities gets modified so you can use the new fields!
So if I modify the "Lead" entity to have a "department" field and I call the new field "GB_Dept" then, after an IIS reset and update of the web service in VS 2005, I can type in
com.gary.mlcrm3.lead lead = new com.gary.mlcrm3.lead();
// Set the properties of the lead object. lead.GB_Dept = "Lead's Dept";
Hopefully this is a sign of things to come...like maybe with a certain product I could POINT out that you use to SHARE information with?