For one of my projects I had to extend the menu of the detail form of email entitiy in MS CRM 3.0 Unfortunately I could not do this using ISV.config because it only supports a handful of entities. Email is not one of them.
Fortunately MS CRM 3.0 supports java scripting on the onload event of the page. So I injected some new elements into the DOM to add another menu item to the actions menu. Of course this kind of HTML code injection into CRM pages is not something new, but the keypoint here is to use the "action" attribute of the table row element. I tried several possible solutions but it seems that this is the only possible solution to trigger the click event on the menu item.

Figure out the details with the following code snippet:

if(IsOnline()) // is only needed if the action has to be made online
{
    if (crmForm.FormType==2) // i only wanted the new menu item to appear on update forms
    { 
        // first get the current emailid if needed
        str=location.href;       
        erg=str.search(/id=[\{\}\dA-Fa-f\-]/);
       
        add='';
       
        if(erg!=1)
        {
            add='?' + str.substring(erg);
        }
       
        // don't blame me vor chosing variable names - i was in a hurry :-)
        trSpacer=document.createElement('tr');
        trSpacer.setAttribute('class', 'mnuSpacer');
        
        tdSpacer1=document.createElement('td');
        tdSpacer2=document.createElement('td');
        tdSpacer2.setAttribute('class', 'mnuSpacer');
        tdSpacer2.colspan='2';
        brSpacer=document.createElement('br');
        tdSpacer1.appendChild(brSpacer);
        hrSpacer=document.createElement('hr');
        hrSpacer.setAttribute('class', 'mnuSpacer');
        tdSpacer2.appendChild(hrSpacer);   
       
        trSpacer.appendChild(tdSpacer1);   
        trSpacer.appendChild(tdSpacer2);       
      
        tr=document.createElement('tr');
       
        // the next line is the essential part
        // you can replace it with any javascript code you want
        // i did some redirection to my custom page
        // which messes a little bit around on the server
        // and then redirects back to the page 
        // of course an ajax based solution could be an alternative
 // separate several js statements with semcolons ;
        tr.action='location.replace(\'my.aspx' + add + '\');';       
       
        td1=document.createElement('td');
        td1.style.border='1px solid #dcdfe5';
        td1.innerHTML=' '
       
        td2=document.createElement('td');
        td2.style.border='1px solid #ffffff';
        td2.colspan='2';
        td2.innerHTML='Menu item name';
      
        tr.appendChild(td1);
        tr.appendChild(td2);
        document.getElementById('mnuaction').childNodes[1].appendChild(trSpacer);
        document.getElementById('mnuaction').childNodes[1].appendChild(tr);
   }
}

Maybe this is useful for someone out there.

Hf :-)