There are a couple of other situations that must be considered:
1> Clickthroughs from email read in a non-web client.
If someone clicks a link in an email read in Outlook - there will be no referrer because there is no originating site.
Note that this also holds true if you embed an image or other object in an html-format email, *and* the client has enabled loading of images.
This does not hold true for clients using web-based email.
2> Browser homepage set to your own site.
If all the employees at Acme have www.acme.com set as their home page, each time they open the browser *and* start a new session, there will be no referrer for that session.
This can also be the cause of very long sessions. In the above scenario, if the users are hitting www.acme.com more often than the session length used by the anyalysis software (usually 30 minutes) they will have a session length lasting the whole work day.
I could tell you exactly what is happening if I had access to the raw log files, but the only raw logs I know of that we can get to is the access logs - which are logs of admin activity - not visitor traffic.
3> Pop-up browser windows - these often do not pass the referrer info.
4> Firewalls that strip the data from the referrer field of the http request from the client - note that this can and often is set up on corporate hardware firewalls. This means that if your business is such that you have a large number of visitors originating from the same corp network, you can have a large number of no_ref entries.
5> Out of order log entries. Part of the data web servers log is the time to service the http request. There is a single log entry per request . Logically, in order to know what length to log, the web server can only log a request *after* it has been serviced. This can and does cause out of order entries that can cause analysis to fail or give odd results.
Given that we are talking shopping carts here, I suspect that emails are the most likely suspects.
I have done a lot of log analysis - but am just getting my feet wet with

- if I notice anything else after I get more familiar, I will update this thread.