If you're slightly techy then Robocopy is a good option and free as it is part of windows:
Robocopy
Very flexible and simple to write a batch file to perform whatever you want it to. If you don't know how to do that then some info is here:
ROBOCOPY - Create Backup Script - Windows 7 Help Forums
But basically create a text file and change the extension to .bat rather than .txt. Then right click and select edit and type your commands in. The /MIR option is good as that will mirror what is in your source, but be careful as it you delete something from your source it will also delete it from the backup so depends if you want that functionality. For example:
Robocopy c:\photos E:\photos /MIR
Above will mirror a photos directory on C (your local hard drive) to the directory on E (or whatever your USB drive is on). You can then build up commands for each directory you want to back up.
It may sound complex if you are not techy but spend a but of time practising it and you will save yourself money rather than buying a backup solution. You can then just run your batch file whenever you want to back up or if you know how to use task scheduler can have it run on a regular basis or at logoff for example.
I also recommend
Free Onsite & Offsite Computer Backup - CrashPlan - Data Backup Software if you want to back up offsite although it costs money and depends if you are happy having your files in "the cloud".