I submitted a request to the helpdesk, and they told me specifically what was wrong.
The default setting for expiration date is sometime in the future - I think 2012 or something.
If you leave it on the default, it won't work - you have to manually set it to zero.
I don't know why the default is what it is, but that's why my discount codes weren't working.
I know from some other folks' e-mailing me since I posted this that it's a common problem - no one would think to change the default.
In any case, all good for me now.