We found custom fields on relationships to be of limited use.
We have:
created "Role" as a contact subtype
created a contact record for each role a volunteer can fill.
created a relationship type 'holds role/role is held by'
We then establish the 'holds role/role is held by' relationship between volunteer and role.
This lets us find all volunteers who hold any or a specific role by filtering on relationship when doing an Advanced Search.
You may still want to use the relationship "volunteer" as described by Squishus Tyrannicus as you may have volunteers who are not assigned to a particular role and you will need to be able to find them.
Working with two relationships can be difficult however, so instead you could create a individual subtype called "Volunteer" or even a "volunteer" tag to help you find all volunteers, even those without roles.