If the following preferences under Setup > Accounting > Accounting Preferences > Order Management > Invoicing section have been set up as below:
Invoice in Advance of Fulfillment = False
When invoicing the sales order, since "Show Unfulfilled Items on Invoices" is enabled, all the items on the sales order will appear on the invoice, however, only items that have been fulfilled will have quantities. The quantity on the unfulfilled items will be set to zero (0) by default, however, since the unfulfilled items are displayed on the Invoice, this will allow you to make changes to the quantity and amount on the invoice.
If you changed the quantity on the invoice from 0 to 1 or more, the changes made will reflect on the sales order thus allowing you to have the ability to invoice the items without fulfilling first.
Possible solution would be to disable the preference for "Show Unfulfilled Items on Invoices" so the unfulfilled items will not appear anymore on the invoices so no one can make changes to it.
NOTE: If you try to enter new line items manually on the invoice for the unfulfilled items or for any item, NetSuite will treat the newly entered items as if the items were entered on a stand-alone invoice (i.e., COGS will be recorded on the invoice and the quantity entered on the line will be taken out of the inventory as well).