Chess programs vary in strength, and are very much dependent on their programmars. The programs have to be compact in size in order to be as fast and efficient as possible, and search algorithms and the amount of chess knowledge make a big difference in playing strength. Of course, the computer the program runs on makes a big difference as well. PCs have made such great strides in power and speed that dedicated chess computers (popular in the 80s and early 90s) can't keep up anymore.
For instance, Richard Lang's Mephisto II chess module, in the 80s, ran at 2 Mhz and was rated at probably about 1200-1300 ELO, while Vasik Rajlich's program, Rybka 3.0, running on an Intel quad-core Q6600 cpu, currently is rated at approximately 3200 ELO on the latest SSDF list. Many grandmasters are having to play Rybka 3.0 with pawn odds (making the program play with only seven pawns) just to get a decent game.