My original answer was written a couple of years before Npm 3 and a few other changes. Since then my criticisms are now outdated. I have since moved on to JSPM and occasionally Webpack.
I personally wouldn't recommend Bower in 2016. It served a need once upon a time, but now we have more flexible options to pick from. Front end development has grown so much with its tooling and plethora of dependencies you not only need a package manager but another package to handle loading and other tooling based actions.
Have you seen the way NPM handles its dependencies? The whole infinite sub-folder nesting is atrocious, especially if you are a Windows user, you are going to love the path issues you will run into because nested dependencies can sometimes exceed the 255 character path limit.
With NPM you get duplicate dependencies because each package handles its own dependencies instead of checking if the dependency has already been downloaded. We are talking potentially a few hundred kilobytes, but it is an unnecessary waste of disk space.
The front-end needs a package manager. Bower is incredibly smart in that it only installs a dependency once. If a Bower package needs jQuery for example, it will be in your bower_components (or wherever you chose to save Bower packages) under the jquery folder.
Because you will use a task runner like Gulp or Grunt to combine and minify your package dependencies, the duplication in NPM is unacceptable for the front-end of an application where file size matters. It all makes sense once you wrap Bower components in a build process.
Sure you could use something like Browserify with NPM, but why bother? You should never mix your server-side dependencies with your front-end dependencies in the same package file (which if you use NPM, you will be doing).
The benefit of Bower or whatever front-end package manager you use is that it self-documents your dependencies only for the front-end, and allows front-end developers to only touch a file for the front-end leaving the backend to a services or backend team.
So I politely disagree with everyone else here saying the front-end does not need a dedicated package manager.