This is a good question. There are a couple of ways to do this:
1. Collect this information when the customer buys your software. Choose a particular product key from that pregenerated list (and send them that particular disc). And set those custom license fields for that product key when the charge is processed.
Thats the easiest way.
A harder, more complicated way:
2. Process the order blindly send them a disc. When they activate their product key check to see if the custom license field is set. If not, send them to your website where you can collect their information and set the custom license fields. And have a button that the user can click after theyve done that step. The button will reverify immediately and get the latest custom license fields.
Obviously the first option is better.