In france (and probably All Europe) we have what we call "factures d'acompte" which are sort of deposit invoices and which replace credit notes.
those are just normal invoices except there is a specific mention in the invoice name ("Facture d'acompte" instead of "Facture")
the important thing is the invoice number sequence is the same as normal invoices. Those kind of invoices are mandatory if we want to receive a partial payment on an estimate.
Then, the final invoice, must list all "factures d'acompte"), with their paid amount to deduct it from the final invoice.
making this feature would make your system fully compliant with european system to my knowledge, and it would not break normal invoices.
If i can help developing it for free, it will be with pleasure.