By allowing you to add custom, temporary fields during the matching step, the custom fields feature allows slight deviations from the established templates without breaking workflows or requiring new templates. It is best to use custom fields when the additional fields (the ones not found in the data template) are temporary. If you find yourself regularly needing to add the same custom fields to imports, you should consider making a new template that includes those fields.
Custom fields allow you to create a more flexible uploading workflow for your users, but they do contain a fundamental limitation. Because they are custom, and because they are added during matching, it is impossible to write a Data Hook® that can operate on a custom field. Data Hooks working on other parts of your import will work as usual, however.
For information on how to implement custom fields, click here.