As Ennis pointed out, this has been discussed before. But, I guess I will make a few points. You may not agree with me, but oh well....

A hacker is a person that follows a certain way of thinking. Its all about finding ways to solve problems. You use the resources at hand and modify them if necessary to accomplish a certain task. A network admin watches what happens on his network and fixes problems. A network admin that is a hacker will use tools that most people wouldn't think of to monitor that network, and if he wants to do something specific and there isn't a tool for it, he will write one. Using a coat hanger to fix your muffler would also be a hack. An ER surgeon that has to do something never done before to save a person's life would also be a hacker.

Hats have nothing to do with it. Hacking is a state of mind. It doesn't matter if you are doing good things or bad, its the fact that you are doing something.

allenb explains one form of hacker. Its about the knowledge and ability. To develop those tools that you are talking about, it takes a specific thought process and you have to take into account everything that is involved....ie TCP/IP, connection type (ethernet or wireless), operating system, programs on the system, etc etc.

retoor and smirc have the best definations. allen was correct about 1 type of hacker, but they have the entire scope of hacking down.