This lesson applies to any strategy where systems and technology play a part. With relatively high costs for customisations, it is more than a little ironic that software solutions encourage "best practice" and "innovation" until you buy the software, and then actively discourage modification and adaptation through high costs and user disruption!
One of the key lessons from the "big boys" is that customisation - also known as "systems integration" and "implementation costs" - is the biggest risk of any CRM solution. The lesson many of these companies have learned is that there is a trade-off between the value you get from changing the CRM to fit your business best practice, and the cost of doing so.
For smaller businesses, integration and implementation costs are no smaller than big ones - you get what you pay for in professional services, and given an hourly rate is the common fee base, customising a system can get expensive, no matter that you do.
As a result, one of the best approaches is to "road test" a CRM solution in your business environment, either practically, or by running scenarios. The key is to ensure the core features your business needs - such as the customer information you capture - are in-place or able to be self-customised.
Where there is a difference between what you think you need and what you think the solution can deliver, think about it. Your business may benefit by changing your approach (CRM vendors try and apply worlds best practice), or the solution may well be flexible and you just didn't know it.
Finally, even if the solution perfectly matches your current needs, play some forward scenarios. What happens if you open another office? What about a new product line, or innovation in your service methods. What if you formed a strategic alliance and had to deal with external companies a bit like staff, but with limited visibility? You shouldn't spend up on a package to cover unlikely scenarios, but testing the limits will ensure you're not surprised later when the unexpected occurs.