When Visual Studio compiles your ESRI components, it registers them in the ESRI component categories. In order to do this, it must have write access to the system registry. You have a couple of options - run Visual Studio as an administrator every time you start it up or turn off UAC on your machine. If you're registering your component via Add from File on the Customize dialog in ArcMap (not the optimal way of doing it if you're actively developing) then ArcMap must be running as an administrator (or turn off UAC). This will not impact your users. When your application is deployed, the Windows installer will kick off the registration. Of course, it must be running with elevated privileges but that is standard. Installing software is a task that should only be performed by an administrator.
The only way around all of this is to rewrite your application as an addin. Addins do not require admin privileges to deploy.