I like Pandora because it automatically plays music similar to what I've told it I like. However, there are times that I want to listen to a particular artist or song without waiting for Pandora to get to it. I've found that Grooveshark is good for this. You enter the name of an artist, song, or album, and it searches its database. You can then stream the song immediately or add it to your queue to be played in Grooveshark Lite, the web-based player.
One shortcoming I found is that the Grooveshark database is composed of music uploaded and categorized by its users. So, if the users' songs are low-quality or any of the metadata is incorrect, that makes the database inaccurate. I've found this particularly frustrating when I want to listen to an entire album. I'll search for the album title, and there are multiple listings to choose from. I select one, and the album could contain duplicate songs, or even be missing songs from the album. I'd much rather be able to stream the correct songs in the correct order, at a consistently good quality.
Using Grooveshark to stream music is free and legal. If you choose to purchase music, your money will go first to the music label, then the remainder is split between Grooveshark and the user who uploaded the song. For more about how Grooveshark works, read the FAQ.