One of the really nice things I love about Linux is that it can be upgraded from version to version of most mainstream distributions. This means that ideally, a system can be kept up to date over time while preserving settings.
I've heard of so-so luck in the real world with upgrades from version to version. Personally though, I've had pretty good luck mainly with upgrading Fedora from version to version. I love the fact that the binaries are upgraded, while maintaining config files, settings, user data, etc.
Recently, I had a very rare case where a CentOS 5.4 server was crashing. Some binaries started to show segmentation faults (started with yum, then logrotate, and certwatch), then eventually the server would run for a few days, then the kernel would simply crash dump (similar to the common blue screen of death that we are all too familiar with in Windows). I've only seen Linux do this a few times in many years of experience. In cases previously, it was mostly due to hardware problems. One time it was due to a faulty kernel on the particular machine (Dell Vostro laptop). It seems that in this case though on this server, it was due to a software problem of some sort. When upgrading CentOS from version 5.4 to 5.5, the problems went away completely. So it seems that something (I suspect there was something up with the Python libraries) software-wise was awry. But what I was amazed at is how every single setting, configuration file, user data, everything... was completely preserved from the old version of CentOS to the new upgraded version. The CentOS upgrade process refreshed all of the binaries on the system including the kernel and the system booted up and was up and running in no time. No tweaking or adjustments were needed at all. This is one of the most amazing things about Linux is that the upgrade process can be so straightforward and so effective. Great great stuff here. I am so used to seeing upgrades in Windows and other software fail miserably.