In my opinion, far and away the best CRM solution is Microsoft Dynamics CRM. Of course it is not free, but you didn't specify that ;-)
So why do I think MSCRM is the best? Let me count the ways. In a word, it is far and away the most powerful, flexible and customizable CRM solution (IMO). Almost everything about the product is customaizable, with practically unlimited scope for adding user-defined fields and user-defined entities (I use mine to track my customers' IT assets, so this is directly relevant to your question). Customization is carried out within the product itself, using the web interface and doesn't require and special software (so for example, you don't need to know HTTP and CSS to customize the forms). THe product is metadata driven with an underlying SQL database.
The web interface can be customised with client-side script to perform validation, prefilling of defaults, formatting of data or dynamically adding and removing display elements in response to user input. Another customisation that I've done on my system is to add a 'click-to-dial' button on phone number fields that integrates with my digital PBX system.
MSCRM has a role-based permissions sytem that lets you control exactly what your users can see and edit in the system.
MSCRM has a good web interface, but it goes further by integrating into Microsoft Outlook. You can even 'go offline' and work on your data when you have no connection to the server. Plus, MSCRM exposes web services that let you write your own custom applications that interact with the CRM server. I use this integration point, for example, to perform caller-ID lookup on my incoming calls so that my phones can display the caller's name and company instead of just a phone number. MSCRM is a development platform as well as a product, with a full SDK and many integration points.
MSCRM has a sophisticated workflow engine that lets you automate tasks (eg. a common customisation is to send emails to customers when a service case changes state). Workflows can be triggered manually, or automatically by certain events (new record creation, status change, attributes changed, etc).
Reporting is based on SQL Server Reporting Services, with a number of built-in reports and the ability to create new reports within the web interface (without having to write SQL queries!). More sophisticated reports can be developed in Visual Studio.
MSCRM is not cheap, but you get what you pay for. An on-premise server installation starts at about £2.5K, a more cost effective alternative (particularly for small businesses with a small number of users) is to use a hosted service, such as that offered by LiveCRM.biz