1) Always fully trusting your system First, it's an issue of trust. A good GTD system is one that you always know where a piece of data should go. That's why tagging has been such a big hit for me, if I don't already have a specific category, I can just add one (though I try to do so sparingly). The flip side of knowing where to put things is being able to find your data. If you know where to put it consistently, then you will consistently be able to retrieve your data.
This is something that is always overlooked in the design phase of any data tracking system. Its not a matter of having a place to store every little piece of data, its about having a place that makes you confident, after investing the time and energy to enter the data, that you will be able to retrieve it later when that data is needed.
I will repeat: Without being completely confident that you will be able to retrieve the data the next time you need it, you will always be reluctant to invest the time needed to take the high quality notes most valuable in a CRM system!
CRM systems (the majority of my experience has been with SugarCRM and Salesforce violate this rule to the utmost extreme, though they do it in a more abstract and complex way. Yes, there is a specific spot for an individuals contact information. Yes, there is a specific spot for you to store information about a company or Account. In fact, there are an unnecessarily large amount of specific data fields to store fairly unnecessary pieces of specific data.
The problem lies with the less clearly defined pieces of information you want to keep track of in the daily process of being a sales person. This data tends to be specific to each company, product, and sometimes down to the specific salesperson. There are notes those that you want to keep about your prospective clients, there are different notes that you want to keep about your existing clients, and there are all kinds of meta-data you want to keep that's not specific to either, but are definitely relevant to you moving people through the sales process and CLOSING DEALS.
This information, in both SugarCRM and Salesforce, can be stored in a variety of locations. To keep things simple, lets just start with the obvious big three; contacts, accounts, opportunities. Each time I've identified a piece of information I have to track, I then need to figure out which of these locations to use. Not much guidance is provided by the companies who provide these applications, and most sales managers don't understand the intricacies and importance of creating a workflow that will be used consistently throughout the group (especially if there's to be any collaboration).
In many occasions I've found myself on the phone with a client, rapidly gathering high quality information, only to be thwarted by these CRM systems. I have to decide what section to put the notes in, which in itself takes entirely too many clicks of a mouse, then only to know in the back of my mind, that I am never going to find this information ever again.
Which leads us to the next part; retrieving data from the system. The easiest example is to look at how these CRM systems track activities for an account, contact, or opportunity. Each activity is its own entry that can be a task, a call, an email, a fax, a meeting, etc, etc. I still never know which one is which when it comes to inputting the data, but the worst part is finding your activity after the fact. What you end up with is a long list of all these activities, with no easy way to filter them or to get to all the contents of the activity. Even after creating a variety of custom views/reports I was not able to see my data in the way I wanted to, and this is under no time constraints or stress. Now add a screaming customer on the end of the line, and try to find data on the spot. It's a mess.
After 3 or 4 months of using Salesforce.com I've finally started to come up with a few best practices that work well for my exact situation, but the process has been slow and very much by trial and error. I am still reluctant to spend too much time inputting data, because I am not convinced that I will ever see that data again, at all, much less when I need it most.