If you are planning on building a solution on top of Dynamics CRM 3.0 - whether you plan to resell this as an ISV; or if you are just creating a customization for your own internal deployment - a good idea is to review the Veritest specification.  The guidelines give you a good insight into best practices and specifically what kinds of customizations to avoid.

http://www.veritest.com/lionbridge/en-US/services/outsourced-testing/product-certification-programs/microsoft/Microsoft-Dynamics-Test-for-ISV-Solutions/

Program Overview

The Microsoft Dynamics Test for ISV Solutions identifies applications that successfully interoperate with the various Microsoft Dynamics (formerly Microsoft Business Solutions or MBS) platforms: Microsoft Dynamics AX, Microsoft Dynamics CRM, Microsoft Dynamics GP, Microsoft Dynamics NAV, and Microsoft Dynamics SL (formerly Axapta, CRM, Great Plains, Navision and Solomon, respectively). The test specifications were developed by Microsoft and VeriTest to define the minimum requirements for an application to operate within a specific Microsoft Dynamics environment. In general, the test specifications are intended to ensure an application:

  • Doesn't cause the system to become unstable
  • Doesn't corrupt the Microsoft product configuration
  • Doesn't restrict the functionality of the Microsoft Dynamics product
  • Is unlikely to become corrupted when the Microsoft Dynamics product is upgraded or updated.

Take a look at Dave Porter's new post on the CRM dev team's blog for more on Veritest(ed) solutions.

http://blogs.msdn.com/crm/archive/2006/06/27/648578.aspx