I’ve been using Ubuntu Linux as my sole operating system for two years now, ever since before I became a professor. The switch was completely painless as I had already been using the same software on Windows and the Mac for years (such as OpenOffice, Firefox, VLC, Pidgin, Netbeans, Eclipse, JEdit, Inkscape, Gimp, etc.). I wrote about making the switch to Linux gradually over 6 years ago, and I dual-booted to Windows and Linux for a long time, but Windows was still my primary OS until 2 years ago.
There was some software I had to change when I made the switch, but I was planning to do so anyway. For data analysis instead of SPSS, I learned R, which is more powerful (see these notes for getting R and a GUI interface installed on Ubuntu). I had to find a different tool to make screencasts. Luckily they are all free in Linux. I used gtk-recordmydesktop, but there are also Istanbul, WebcamStudio, and others. For music instead of Winamp there was the winamp-clone xmms (and now Audacious). Of course there are itunes alternatives too. Wine can be used to run any Windows-specific software, including games. Second Life has a Linux version that works just fine, too, and Adobe AIR applications like Tweetdeck, Thwirl, and Seesmic Deskop work just fine. All web-based applications from Youtube to Google Apps to whatever work great in Firefox – you can install the latest Adobe Flash and Sun Java 6 plugins too.
The only reasons I’ve been still booting to Windows occasionally now are to make screencasts that show how to do things in Windows (which most students are using), and also to use the Wimba whiteboard/chat application that our university uses. Wimba is a Java applet-based application and should work on Linux fine, but it runs a “check my system” test first which complains and fails.
Also, our university stopped its proxy server that I was using to get off-campus access to journal articles in favor of a VPN instead that doesn’t work in Linux, but now I just use an ssh tunnel to campus instead which works just fine (see these instructions for ssh tunneling).