Features are scoped, this means that you can have a feature activated at the farm, web application, site collection (site) , or site level (web). When a feature is activated at a scope, it also affects subscopes, so if you use a web application–scoped feature to add a custom action somewhere, then every site collection and every site beneath the web application will have the same custom action.You can combine different elements within a single feature as long as the elements are of compatible scope.
The following table lists some feature elements and the available scopes for each.
As you might have noticed, some features are available at more than one scope and the scope you select will depend on the granularity you need. If you want to add a custom action to the Site Actions menu of every site in every Web application, you can set the scope of the feature in which the element is defined to Farm. If you want to affect a single web within a site collection, set the scope to Web. Other features are available at only one or two scopes. For example, site columns (Field element) and content types only allow Site scope while List Instances and List Templates allow Site and Web scopes.
This does lead to a bit of a challenge when you want to add a web-scoped list template where you add some custom fields, which are site-scoped. More about activation challenges later…
Note: This is an excerpt from a lecture that I teach at USPJA