the ability to install random little programs however I'd like.
Linux has that, but often not the Windows programs you are used to. There are a whole separate collection of UNIX/POSIX programs out there - some are packaged up by Ubuntu, but every now and then you'll come across one that you'll need to install yourself. If Ubuntu does package it, it is almost always better to do it that way, but there are plenty out there that have not been packaged for Ubuntu.
Just enable all the repositories sometime and browse. It's quite amazing what you can get without even going outside the repositories supported by Ubuntu and the Ubuntu community. A lot of the "random little programs" (or their functional equivalents) are in fact available if you look.
It is also getting easier to install stuff that's not in the official repositories. The full version of VirtualBox, and Skype (to name two examples I've dealt with recently) are a breeze to install -- just "click 'n' go" using the packages downloaded directly from their respective web sites.
There are also still exceptions, unfortunately. If you need to fill out PDF forms, you pretty much need Adobe Acrobat Reader. And the Linux version of it is, as they say, "not quite ready for prime time". At least not on Ubuntu.