I had the privilege to visit one of our large enterprise customers a few weeks back. The visit was tremendously informative and valuable and we spent two days talking with employees of all levels from sales people and consultants to general managers and senior directors, which gave us a 360 degree view of the organization, how they work, what problems they are facing and how we can improve CRM to make them even more productive, increase their ROI and reduce their TCO. The visit reminded me of the two of the critical factors for a successful CRM implementation (I am sure one can list many other ones) 1) Ease and flexibility of data and process integration with legacy systems 2) End user adoption. On the former topic, If you are interested in or are working on a CRM implementation in an enterprise size organization, Microsoft already has published a good wealth of best practices and patterns for architects. Check out the Integration Patterns topics on MSDN, especially Entity Aggregation which would be a useful resource when designing a CRM on-premise integration with other data stores and applications that you will typically find in an enterprise. Also, the 8th edition of Architecture Journal is dedicated to data integration and pervasiveness of data in architectures, which I highly recommend.