I can see volunteers related to event management, but what about managing volunteers for organization roles like marketing, accounting, etc. ? Perhaps there is a hack to create a dummy event, but wondering if there is a cleaner approach using the civicrm volunteer module.
In CiviVolunteer 1.x, the answer is "yes". There is an open issue for this. The CiviVolunteer authors just had a successful fundraising drive and raised over $30,000 to build CiviVolunteer 2.0, which should bring this feature in.
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.
You might consider not using the CiviVolunteer extension but just storing volunteer attributes (role, skills, interests, etc.) on the contact record. If you need to record specific days volunteered, use activities to store details and record volunteer time.
The advantage of this is that you're storing attributes in a natural place for searching and reporting, and using activities mimics the way CiviVolunteer puts volunteer time in activities so you'll be able to do apples-to-apples comparison with time recorded at an event.
I think what you're looking for is a Relationship.
There's a "Volunteer" relationship by default when you install CiviCRM. To set up a contact as a volunteer with an organization, visit the contact that you would like to assign as a volunteer. Click on Relationships at the top of the page and then click Add Relationship. A modal window will pop up. In that window, you'll want to select Volunteer for under the "relationship type" field. Select the organization that the contact is a volunteer for under "Contact(s)" and fill in the rest of the information as desired.
If you need to assign volunteers to specific organizational roles (accounting, etc.) you can create a custom field and attach it to the volunteer relationship.
A lot of this will depend on how you manage volunteers and how you are collecting the information you need about them. It may be useful to know 'when' someone offered their skills. In which case you could use Activities with a bunch of custom fields to collect their 'offers'.