While Project Specs provides a means to create custom variables on a per project basis, it is sometimes desirable to have custom fields on a per invoice basis, such as a Past Due notification. If implemented as a Project Spec, a field would appear in any invoice associated with that project, and not just the specific invoice which it was intended to modify.
If the Report Fields feature already available in Visual Report Templates were enabled for Invoice templates, custom fields for Invoices would be a cinch.