The simple answer is that a sharepoint solution can be deployed, whereas features contained within the solution must be activated. Visual Studio can be set to deploy the solution, but you must go into the site to activate the feature (or use stsadm/powershell in a post build script to do it for you).
When you deploy a solution, you can choose which web application(s) the solution will be deployed to. Once it is deployed, the features within it (so long as they are not hidden features) that are scoped to 'web' will show up in every web (i.e., Site) within that web application, but they will not be activated. You can then go to the site features and activate the feature you are interested in using.
If you want to prevent site administrators from using this feature except in certain sites, you can put some logic in the event receiver for your feature that will check to see if it's in the right site or not, and stop the activation if the site isn't the right one.
If you want to automatically activate this feature on a specific site and not allow site admins to see this feature (i.e., not be able to activate / deactivate it), you could mark your site feature as hidden and, in addition, create a farm scoped feature (farm scoped features are automatically activated) that has an event receiver that finds the appropriate site and activates the hidden site feature for you. However, you have to be careful of using this method, because you have to hardcode your site's relative URL into your solution, which makes your solution inflexible.