Client side scripting using Javascript can extend CRM 4 to cater for many weird and wonderful business logic issues.
One of the advantages of using Javascript (over a plugin for instance) is that things happen "immediately" - and so the updating of a field on the form can be seen to cause knock-on effects. An example of this would be updating a surname and firstname field when a contact is selected.
var cty =
new
Array;
cty = crmForm.all.new_countyid.DataValue;
if (cty
!= null)
{ // found field
var
ctyid = cty[0].id;
if (ctyid
!= null)
{ // found GUID
crmForm.all.new_country.attachEvent("onchange",
CountryChanged);
event.returnValue =
false;
(easy when you know!)