The Initial Fee module enables Ubercart to charge a fee based on a user role. This is good for sites that need to charge a fee to a customer that isn't part of a certain group (e.g. first time customers, non subscribers, etc). After enabling the module, the store admin can assign the fee product at admin/store/settings/initial_fee. When a customer checks out, if the customer does not have the the role and product, it is added.
Optionally, admins can set the Initial Fee module to grant the role that is checked to apply the fee. For sites that only sell products that grant roles, this is an easier alternative to Roles modules (which would require adding a role assignment to every product created). If you don't have the Initial Fee module grant the role, the admin has to supply his own method of granting the role to customers (e.g. the Ubercart Roles module or Workflow-NG) to prevent them from incurring the fee again.
In the latest version (2.0) you must set the fee up as a normal product and then assign it on the settings page. This change allows for the fee to be added to the cart on checkout for better visibility to customers, and it also shows the fee on your invoices accurately.
If you would like the original version of this module then please feel free to contact me. (Note: the original version was a line item at checkout. This item did not have to be a product but the item did not show on the user's invoice and it was often confusing to a user where this fee was coming from).