If you are actually very good at any of the major languages, programming would be the closest thing to a sure bet for you. Unlike most other positions, a lack of work experience will not be a major hinderance to getting a position. Don’t expect to be hired as a lead developer right off, of course, but if you have good code samples, that will speak for itself. Normally, I would never recommend programming to someone as a career (it is usually something that people already know they really want to do), but you mentioned that you loved it. You just have to ask yourself, in all honesty, if you would still love it if you were doing it for at least 8 hours a day, 5 days a week. Also, remember that it would be writing code to do what the employer needs, not whatever strikes your fancy.
As for IT, my 2 cents is keep it as a hobby so you will continue to like it. First of all, most of the work with hardware will cease to be interesting in a big hurry. Usually, any time there is lot of hardware to build, it means a lot of identical hardware (or very close to identical). In other words, pretty much like an assembly line after a few hours. More importantly, unlike programming, if you actually want a job, you will find that that first one will be a bitch to find nowadays. Also, unlike programming, the vast majority of jobs require a little experience at least, in addition to: certifications (I would suggest A+, Network+, Security+, and the base level MS and Cisco certs to start with), and/or possibly a degree.
Of course, you mention that you spend most of your time with graphic design, which you love. There are a lot of people doing it, but if I were 20 years old, and loved graphic design, I would try and go that route, at least indirectly. In other words, if you need work, why not get a job as a junior developer somewhere while working on your graphic design skills and portfolio. You will get to test the waters in programming, while all the time preparing for an alternate career that you know you would love.
All in all, if you need money right now, programming is your best bet (if you’re pretty good at it). Being 20 means you have plenty of time to work for a while at one job while positioning yourself for a career in what you would like best.
Oh yeah, as far as business… honestly, all of the things you say you love involve creative mental engagement. I can tell you from nearly 20 years of experience in business (I just recently turned my long IT hobby into a career — loving it) that for 97.3847% of the time, you won’t be mentally challenged. A huge amount of time is spent documenting what you are doing, have done, and will do (and what all of that cost). So, probably not your cup of tea.
Best of luck