Install an open source unix operating system. Use it. Tweak it. You'll be sitting on a mountain of C code organized into projects of all sizes, all easily available as source. if you don't make an effort to stay in the user category, you're bound to make incremental inroads into C and keep the learning process 100% practical.
The great advantage of this approach is that, since programming techniques, code structure and alike are extremely volatile among project, you get to see very early what works in which circumstances. It may require more active participation (asking questions on mailing lists or programming sites) than following a course outlined by a book author, but you'll probably pick up some idioms useful in the real world earlier.
At least that's the way I got into C, and it was fun, relevant and rewarding every single minute (fun rhymes with frustrating, well, learning hurts).