When the definition between a hacker and a cracker seems cloudy to you remember to look at motivation. A true hacker is a tinkerer, one with a curious mind, they push to the limits and take things apart in order to further their own understandings.
The Cracker may be teaching himself to do more too, but his motive is to use what he learns, to exploit weaknesses and to do harm. Where the hacker is an explorer, the cracker is an exploiter. The hacker explores and takes notes, while the cracker explores and takes advantage.
Hackers don't leave tracks. About the only changes they make to any systems they get in to are to change the logs to hide that they got inside. Crackers are the ones who delete files, make changes, and generally need to show off that they finally managed to enter a machine.
People generally don't have complaints about hackers unless they are really concerned about anyone reading sensitive information. Crackers are a whole different matter however. Crackers are in the system to take advantage where and how they can.
Why do hackers take the rap for crackers you may ask. Well there are three reasons for it. First, early hackers while in it to learn were just as tempted as anyone else would be to find themselves with control of the transfers of money inside a financial institution's mainframe. Hackers can be tempted too and so some high profile cases came to light.
Second, Hollywood likes the term hacker. They don't want to use terms they have to explain. In a film they can say hacker and you immediately know roughly what the guy does. Hacker was the word in the papers when the screenplays were written and hackers is still the word known to the uninitiated today.
Third, Crackers like to be thought of as hackers. As with Hollywood, its the word people know. A hacker gets more respect than a cracker, and a cracker wants respect desperately. Even the no-brain flooders of IRC would...