No, we really don't have a good way...yet. For now, what you would need to do is create at least one Time (zero minutes) or Expense (zero amount) entry and that way you could create an Invoice against it. Then you could put the Retainer in the "Deposit" field for billing later.
Currently we are in the process of adding a Payments system to the Invoice module. You would be able to put your retainer fee in as a payment and then apply that to an invoice after you create the invoice.