For your TV card there are a few different options.
One is to use just your normal programs to watch it. Stuff like VLC can use your PVR directly, setting channels and watch live TV and such. It doesn't support it in Windows, but it does in Linux.
If you want time shifting features, TiVO-like, then you'll have to run Mythtv. It can be somewhat difficult to setup and run correctly, but out of all the different options for Windows or Linux it has the most capabiltiies, by far. I've just used it for it's 'PVR' features, but it has lots of different add-ons for a complete home entertainment center. Stuff like music jutebox, ripping dvds, MAME, clever web interface, and other such things.
One of things that a friend at work likes doing is with his PVR-350 card you can set the device to record at the proper resolution and datarates for a DVD movie. This way he can burn the recorded TV shows directly to DVD using Mythtv without the need to re-encode them.
I beleive the PVR-350 and other hauppauge stuff requires a seperate firmware image you have to obtain and put in the correct directory, but other then that it should just work.
There are a lot of guides for setting up Mythtv on Ubuntu.
Keep in mind that Mythtv is designed to be used in a distributed fasion. You can have multiple 'backends' and multiple 'front ends'. The Master backend will have the MySQL database for keeping track of TV listings, recording sessions, and other settings. The backends also are the items that have the actual TV cards and do the work of recording, storing, and encoding any thing.
Frontends provide the user interface and use their cpus for playback and decoding of the media streams from the backends.
Typically you use the same machine for both the front and the backends, but it's nice to have a seperate backend so you don't have your desktop performance being interupted by some show being recorded. Also people like to use the old Xbox as a Mythtv front-end which are now aviable for dirt cheap.
There are two ways of doing a frontend on Mythtv. One way is to use a Xbox Linux distribution like Xebian or whatnot to run Mythtvfrontend on it. The other way is to use XBMC and some python scripting to support Mythtv. I don't know which is better.
http://www.mythtv.org/wiki/index.php/Xbox_Frontend
The one thing to realy watch out for is that your frontend and backend need to be able to speak the same protocol for it to work. Mythtv frequently changes it's network protocol and it will cause breakage even with minor changes in revision numbering.
Like I said it's sometimes frustrating to setup, but it's easy to use and it's worth it, IMO.
For Windows games you'd typically use Wine or pay for a subscription for Cedega. Paying for Cedega is worth it if your going to do a lot of games because of it's GUI.. it allows you to easily have multiple different versions of cedega and keep track of game-specific settings for maximum compatability. Although most people are going to prefer to use Wine if it works with the 2-3 favorite games.
For bittorrent I have very little need for anything fancy. I just use gnome-btdownloader, very simple. You just point it at the directory you want to save the download and it just goes.
For fancy stuff I like Azureus. In Linux Java comes in two flavors. You have the official Sun Java then you have the open source GCJ support for compiled and interpreted java. The next generation Java will be all open source and the GCJ/Classpath folks are working with Sun to make this happen. Currently the best performance you will get will be from Sun Java. So you want to make sure that is the java your using with Azureus, otherwise it will suck badly.
Azureus apprently has now got a new 3.0 thing going, which I don't know anything about.
Otherwise there are about a dozen other bittorrent utilities aviable through apt-get. Each with their own special angle. Torrentflux is a LAMP application for very advanced multiuser torrent'ng. Btdownloadcurses is what I've used in the past. Transmission has a GUI and a CLI interface. Rtorrent is ncurses based UI. etc etc.
There is even a plugin for Mythtv that will handle bittorrents....