Another way to go around this will involve leveraging Item Fulfillment Statuses, meaning:
• Picked
• Packed
• Shipped
You can still delete a Fulfillment in Picked or Packed status without any problem, once is Shipped then you have meaningful GL impact and you may not want to touch that.
If your are already using Fulfillment Statuses then this could be a solution, if you are not using those, then this may requiere some processes changes and a cost/benefit analysis; meaning:
• Does this happens very often?
• I'm losing money or valuable/important Customers if I don't find a way to make them happy (even if this is their fault because they forgot to enter the coupon?)
• Changing my business processes will impact my overall efficiency or introduce other errors/problems?