you seemed to be right on track on your idea with 2 divs. what makes you think "that wouldn't fix too much"?
depending on whether you want the footer to always be present or make sure it remains at the bottom of the content at all times, you might have to google up some solutions. i come across many ways to accomplish this and everyone seems to have their own method each with their own pros and cons.
here's one
http://matthewjamestaylor.com/blog/k...om-of-the-page
i like your approach and way of thinking of how to do things right, it's a shame that the first thing you wanted to do, happens to be one of those things that gives designers the most headaches even now.
the type of things we have to find the solution for online and the solution uses this crazy combination of conditional comments and 'hacks'.
i wish you didn't have to face these so soon when you're barely getting started. >.<
just don't blame youserlf though cause it won't always be your fault. we all blame the browsers now-a-days.

so if you know you're doing it right, and your pages are valid, and something is still wrong, blame the browser.
as for what i'd try out...
how about placing the gradient background on the body element, so it's constant and takes up the entire screen no matter what the resolution, and then make a div for the footer, maybe make it float or absolutely positioned, and then put it at the bottom?
since the div is going to take up it's own area, there is no need to isolate the gradient bg into it's own element (div) just to tell the gradient background to "stop showing here". i say, let it take up the whole screen, and then just have the footer div show up where it must. it should be fine.