There are probably as many definitions of hacking as there are hackers. Hacking, in the general sense as of how the community regards itself, is the process of altering something or making it do something it was not intended to do. Whether this is hardware hacking (ala Hack.5), or software... or perhaps even social engineering. Social engineering is perhaps difficult for many to understand as hacking, but it is technically using peoples inate weaknesses and trusting nature to get them to do things they are not supposed to. In a hardware sense, hacking can be soddering a new chip onto your 'speak and teach' to have it spew out midi for sh1ts and giggles. On the software side, it could be exploiting a buffer overflow problem in someone's program. Often a line is drawn between hackers, and crackers... though I've heard this argument far less in the last couple years.
"In hacker culture, a script kiddie (occasionally script bunny, skidie, script kitty, script-running juvenile (SRJ), or similar) is a derogatory term used for an inexperienced malicious cracker who uses programs developed by others to attack computer systems, and deface websites. It is generally assumed that script kiddies are kids who lack the ability to write sophisticated hacking programs on their own, and that their objective is to try to impress their friends or gain credit in underground cracker communities" http://en.wikipedia.org/wiki/Script_kiddies
That is another network of individals. I'd currently have to call myself... more of an 'ethical script kiddie' than an ethical hacker. Difference being, I am just now learning programming languages (c++, Java, Perl, and Assembly) and lack the ability to find holes in other's code. I guess anyone with a strong charisma could be a good social engineering hacker, but for the more 'usual' definition of a hacker.. knowing how things work, and having a love of things technical is a good start. My C++ compiler unpacked itself in to different directories than were referenced to run the program. (Whoever wrote that part of the program needs to be groin kicked) I genuinely had a great time reading the error messages when I tried compiling a program, and figuring out the problem with my compiler and fixing it. If you have no inate desire to figure out how things work, then it will be a long long road to truly be able to be called a 'hacker'.
I don't know if that answered your question, I'm sure many others here have better definitions and better explenations... but I had a few minutes free at work.
"Bad.. Good? I'm the guy with the gun"