One technicality of Variations is that values for higher-numbered fields cannot be passed unless values are also being passed for lower-numbered fields -- i.e., values for on2/os2 cannot be passed unless on0/os0 and on1/os1 are also being passed, and on1/os1 cannot be passed unless on0/os0 is also being passed. That's simply the way PayPal handles those fields, and our system was originally built to support PayPal checkout, so these limitations apply even if you aren't using PayPal.
In your particular case, if the buyer omits a Message, then Special Instructions and Delivery Date won't be passed, or if the buyer omits Special Instructions, then their Message will be passed but the Delivery Date won't. We recommend making the most-required field first and most-optional field last -- e.g., make Delivery Date the first option, followed by Message, then Special Instructions.
However, there is a way you can work around this without having to reconfigure your products and re-copy-paste all your button codes; you can simply specify a default value to pre-fill every field, like so:
<form action="https://www.e-junkie.com/ecom/gb.php?c=cart&i=1088303&cl=209377&ejc=2" target="ejejc" method="POST" accept-charset="UTF-8">
<input name="on0" value="Type a message for the card" type="hidden">
Type a message for the card:<br>
<input name="os0" maxlength="98" type="text" value="(none)">
<br>
<input name="on1" value="Enter any special instructions here" type="hidden">
Enter any special instructions here:<br>
<input name="os1" maxlength="98" type="text" value="(none)">
<br>
<input name="on2" value="Delivery Date" type="hidden">
Delivery Date:<br>
<input name="os2" maxlength="98" type="text" value="MM-DD-YYYY">
<br>
<input src="http://www.e-junkie.com/ej/ejadd_to_cart.gif" alt="Add to Cart" class="ec_ejc_thkbx" onclick="javascript:return EJEJC_lc(this.parentNode);" border="0" type="image">
</form>
That said, for best results, it would be ideal while you're at it to also reassign on#/os# names in the button code, so on0/os0 goes with the most-required fields and on2/os2 goes with the most-optional fields, like so:
<form action="https://www.e-junkie.com/ecom/gb.php?c=cart&i=1088303&cl=209377&ejc=2" target="ejejc" method="POST" accept-charset="UTF-8">
<input name="on1" value="Type a message for the card" type="hidden">
Type a message for the card:<br>
<input name="os1" maxlength="98" type="text" value="(none)">
<br>
<input name="on2" value="Enter any special instructions here" type="hidden">
Enter any special instructions here:<br>
<input name="os2" maxlength="98" type="text" value="(none)">
<br>
<input name="on0" value="Delivery Date" type="hidden">
Delivery Date:<br>
<input name="os0" maxlength="98" type="text" value="MM-DD-YYYY">
<br>
<input src="http://www.e-junkie.com/ej/ejadd_to_cart.gif" alt="Add to Cart" class="ec_ejc_thkbx" onclick="javascript:return EJEJC_lc(this.parentNode);" border="0" type="image">
</form>
If you do that, you don't necessarily have to rearrange your products' Variations configuration to match it in Seller Admin, as we only use the Define Variations screen to generate ready-made button code for you to copy and paste.