Why there is a long list of OS for installing on servers in VPS packages? Normally, the latest version of a software is the best (due to fixed bugs and new features). When Ubuntu 11.10 and Centos 6.0 have already been released, why people are interested to install older versions such as Centos 5.5, 5.0, 4.0, etc (or Ubuntu 10, 9, 8)?
Bleeding edge is not always the most stable is a great reason. In the case of Ubunutu the latest versions are supported for 18 months at a minimum. Where LTS versions are supported for five years (server edition) and soon to be 5 years (both desktop and server) with 12.04.
Ubuntu LTS Wiki
Another good reason may be for developers, who need exactly same testing environment as the production environment. They may also be interested in installation of these older versions into virtual machines in order to test their software on various versions of the same distribution.
Along with the reasons mentioned by others, it is sometimes the case that certain software needs an older dependency to run. From experience with CentOS, I know that files get moved from one package to another between major releases. Sometimes, a file is removed from a package and not put in another one. In most cases this is because the file has been superseded by a better option or because it was never any good in the first place. Many developers don't want to look for the new package or rewrite perfectly good working code to work with the preferred alternative. In that case, a developer will limit what versions of dependencies they will allow (it is often done proactively, just in case).
It is, in many cases, a nightmare to try to downgrade the dependency package, especially if the package is depended upon by core system components.
The provider may only update their VPS packages periodically. Maybe they are sloppy, or behind the curve, maybe they are waiting for the upstream provider to deprecate older versions of the VPS service. They may not see any value in removing older versions of the software from their list.
This is often not true. The lastest version of a software has often undergone far less testing then an older piece of software. Many sysadmins prefer to install what we call "mature" software, instead of the latest and greatest.
Here are some examples:
That said, it is wise to keep up to date on patches for your current revision of the operating system. CentOS 5.7 does fix many bugs and security vulnerabilities which were present in CentOS 5.5 and earlier.
CentOS 5.5 is a bit old, but the 5.x branch is still current (5.7 was released in September 2011), and is probably one of the most common Linux installs in a Server environment. It's probably far more common then CentOS 6, due to the difficulty of migrating existing systems from CentOS 5 to 6.
Backwards compatibility for stuff that costs to much to upgrade/update.
Some organizations like to keep their OS version churn to a minimum such that even new boxes may get loaded with the "current standard" version of an OS.
Consider it "Final" meaning it runs great, without bugs or faults. It's a version they're confident will be stable. They've "Mastered" it, it's been out long enough.
All the new stuff is just, well... new. More bugs, and support issues. Not to mean it doesn't work just fine 95% of the time.