What compiler could I use and why?
GCC, because it's universal: you can run it on Windows, OS X, Linux, Solaris, Haiku, anything you mention, and on any kind of CPU (i.e. architecture), and for any kind of CPU. Your compiler-specific skills are never obsolete with GCC.
For windows, that'd be MinGW.
What IDE could I use and why?
Emacs. Press tab once, emacs automatically indents the right way. Moving through text is done effortlessly with Ctrl-letter and Alt-letter, instead of by moving your hand all the way over to the arrow keys or page up/down (although you do have that option). Yeah, it sounds weird, but it's a boon once you get the hang of it. The colors are pretty to look at and easy to read (unlike vim's dark-blue-on-black comments).
You may like ecb-minor-mode, which works well with window-numbering. Also, there's a great IRC channel, #emacs, on irc.freenode.net.
What other tools are useful for a beginner C programmer?
A debugger. Note that gdb takes a little while to learn, but is quite nice.
Also: Valgrind. Very useful for checking your program for errors regarding dynamically allocated memory. Also very useful for finding threading bugs (if you need that).
Are there free online guides?
They come and change and go. I punt this one and let Google give the answer.