Do you know if the shopping cart system was built using PHP? (That might be important at a forum named PHPBuilder...) 😉
PHP supports "Transparent Sessions," in which the Session_ID (the long, seemingly random number by which the server identifies clients) is propagated either via cookies or via the URL itself. So, if a user of a shopping cart had cookies turned off, the server would automagically append the Session ID number to the url as the user clicked to view his/her cart, and the receiving cart script should correctly identify which list of items to associate with this particular client request.
That said, there are a whole host of reasons why the carts might be empty. I assume, from your comments, that a customer who uses the cart system with cookies enabled doesn't face this issue?
Of course, another question would be "why do so many people have cookies disabled?" Or, more likely, some dumb anti-cookie SW on their systems, anyway...
Doubt this is much help, but hope that it might be, somehow ...
🙂