Addressing the question about programs that don't have installers...
Personally, I always create C:\Programs as a root for such things. The simple command-line utilities often go in C:\Programs\Bin which I add to the system path. The rest go in their own subdirectories, e.g. I installed MinGW in C:\Programs\MinGW and MSYS in C:\Programs\MSYS. A key rule I follow in the \Programs tree is to never put a space in a file name unless some distribution's tarball or zip file did it. That makes life easier at the command prompt as many, many years of experience with Unix ought to have taught Microsoft.
I try to follow the rule that the only way to write to C:\Program Files is through a real installer. If more applications had followed that rule sooner, life in Windows would have been so much simpler.
For data, I'm torn on the My Documents thing. I advise all of my non-geek relatives to use it, and to create lots of folders, or better, trees of folders for their project work in there. That simplifies the backup conversation quite a bit because if all they remember to ever back up is the My Documents folder (well, and Shared Documents, and the other user's documents too), then they've caught most of the critical personal data.
For my own personal use, I have too many years of habits that lead me to do things like C:\Customers\ThisClient and so forth to switch to a pure My Documents lifestyle...