I disagree with a couple of your points:
>>While there is now a decent "office" program (OpenOffice ,StarOffice), it still pales in comparison to Microsoft Office<<
I've used StarOffice and think it's an outstanding productivity suite. I don't think it pales in comparison to MS Office, unless maybe you're talking about the version for Mac OS X.
>>As for programming, Linux is great! However, you should be ready to program in C, PHP, or Perl. <<
Or Java or C++ or Python or Ruby or Smalltalk or Lisp or ... well, let's just say the list goes on.
>>Also, your selection of fancy IDE's is somewhat limited (no Visual Studio).<<
You're limited to what's available on Linux, but there are a fair number of IDEs worth looking at: Eclipse and NetBeans are just the first two that come to mind. I wouldn't even think of not having Visual Studio on Linux as a limitation; obviously the target platform for Visual Studio is Windows, so how much sense does it make for that IDE to be on any other platform? If you want to do Windows development, stick to a Windows platform. Nothing wrong with choosing the right platform for the right job, even if it is Windows ;-).
>>Also, the majority of software users (not counting Server apps) are using Windows, so developing on Linux may not be the best bet for you at first. <<
Unfortunately it's true that there are more Windows users than any other system, but Linux is probably THE best platform for learning to program. Starting with the good old Unix command line - vi, gcc, etc. - provides a very strong foundation for moving into other areas of programming, be it web programming, GUI (i.e. Windows, Mac, X) programming, or staying in the realm of Unix. Starting with visual tools on a GUI centric platform will leave you struggling when you move on to other platforms or are trying to figure out what's happening at the core of your applications.