The definition of spyware varies depending on who you ask. The calling card of a spy is that it is sneaky and not easily noticed. My own take on the matter is that spyware is any software that performs sneaky activities behind the user's back--these activities can range from installing itself onto your computer, gathering information on you and transmitting it across the Internet, downloading files or running programs on your computer, messing with your system settings, or even trying to silently pass itself on to others.
Like a real spy, it may don disguises to hide itself and its intentions. It will try very hard not to be noticed. It will persist in the background even after you tell it to go away. It might even try to hide from you if it knows you're looking for it!
Some earmarks of spyware: