We use a lot of custom fields here to collect information from customers, a lot of custom fields. The problem that we have run into is that we also love check lists for the tasks that have to be done to completed a request. What we have ended up doing is this

I could add more custom fields but then the customer would see them as they are filling out the incident, etc and that would just confuse most of them. Maybe a tab could be added at the problem resolution for the specific custom fields.