This is happening because the discount is currently limited to one per user. The only way the system can track one use per customer is for the customer to first log in.

To update this setting:
  1. Navigate to Fundraising > TeamRaiser
  2. Under the Actions column, beside the appropriate event, click Edit
  3. On the left hand navigation pane, select Manage Discounts
  4. Under the Actions column, beside the appropriate discount, click Edit
  5. On the left hand navigation pane, select Define Eligibility
  6. Under Discount Usage, unmark the checkbox Yes, each registrant may use this Discount one time only
  7. Click Save
Now when a user enters this Discount Code, they will not be required to be logged in.