Personally I think it is impossible to design a template that meets the need of all abuse reporting scenarios. So I would advise developing a tool to take care of querying the user (internal/external) the required information based on type of abuse and the type of details required to be sent or expected to be received.
Having said that here is a kick start on something that can be built into a template:
template.abuse:
Date/Time of abuse : {<date/time format>}
TimeZone : [<pick-list>]
Contact Name : {<free-form>}
Contact Email(s) : {<free-form>}
Wish to remain anonymous : [Y|N]
Contact Business : {<free-form,expected:name of business if relavent>}
Contact Business Address : {<free-form,expected:address of business if relavent>}
Type of abuse : [<pick-list, e.g.:
Open relay/Proxy/NNTP
Phishing report
Virus or Worm
Offensive material
Copyright
Network attack
Spam
Port scan
>
//
#import(Type of abuse) // <-- imports fields relevant for the type of abuse
// e.g. "Virus or Worm" -> template.virus_or_worm
// see below...
]
Additional Notes : { free-form,e.g.:
Ports Scanned
Bulk content details
Etc.
}
template.virus_or_worm:
Source of Abuse : {<free-form,expected: IPs, email addresses, usernames, etc>}
Evidence : {<free-form,expected: logs, emails, etc>}
Important thing to take away is that it is not a good idea to have a generic template for 'everything' as users end up selecting things they 'believe' the labels on the form mean rather than their intended meaning.
And interactive tool (web-app/form or otherwise) that aids the user while allowing them to select "Other type of abuse" where the abuse is not specifically listed would allow for a more relevant information to be collected/sent thereby reducing unwanted problems.
See also small beginnings: Exhaustive list of abuse notifications that organizations get