I did some research on how our online shopping cart service works, talked to some other merchants, and made a tweak.
Previously, if someone checked out as a guest, the system would create an account anyway, and generate a random password. Unfortunately, the password emails often get blocked as “spam”.
Hence, if someone had checked out as a guest earlier, and tried to do so again, the system would see the email address had a password associated with it, and the customer would be unable to check out as a guest. Thus, confusing and annoying the customer.
I went in the “Checkout controls” and unchecked the “Create an account and generate a password” box. Now, you can be a guest every time, although that means filling the name and address stuff again. Some people like it that way.