Hackers modify existing things to make new things quickly without fully understanding how the thing works. Engineers understand how things actually work, but often take longer to make new things because they think of all the things the hacker doesn't care about.
I agree with the original definition of one who finds new ways to adapt software/hardware.
But be careful how you use it. I saw one resume of someone looking for work as a software engineer that had "hacker" and links to "hacking" sites all over it. While not intending it, this was a poison pill.
Hacker -- often capable, but a rugged individual who scorns anything smacking of discipline or documentation. A hacker prides himself on providing the minimum of comments. Hey, why aren't you smart enough to figure out what he's done? I knew of one hacker (actually a very good programmer) who would write multiple statements per line -- just to save paper. Talk about unreadable code. In my experience 'hacker' is a pejorative term, not someone to be emulated.
As defined by a hacker:
hacker == innovator
One who can take an existing design and reverse engineer, modify, add or otherwise alter the original purpose to perform tasks the designer had not originally intended.
As defined by the media/police/government (or someone hacked):
hacker == criminal
One who breaks into a system to cause harm.
I 'hacked' my gas furnace electronics to increase the post purge time (ie exhaust noxious fumes longer for safety reasons) ... I guess that makes me a criminal in the eyes of the uneducated sheep.
In the media, "hacker" is used almost exclusively as a negative term, in connection with stories about cybercrimes. But in the community of those who possess hacker skills, the meaning can be positive or negative, depending on the context.
To answer Naomi's question, to a group of kids I would describe a hacker as someone who has great skills with computer software or hardware, who is able to modify a computer (hardware or software) to make it better or to make it do something other than what its original designers intended.
I also like the analogy I have heard comparing hacking to locksmithing -- a set of skills that can be used either for good or for evil.
When it comes to defining someone who breaks into other peoples databases or develops bad software such as computer viruses, just about any word containg the sub word of a$$. Ex: A$$hole, a$$whip, a$$hat. Not printable and infantile, but that's the way I think.