The suggestion given below can help if your partition table is not in a proper disk order. From linux fdisk (fdsik /dev/), choose the advanced menu (by pressing x, afaik), then choose the entry for correcting partition ordering (press 'm' anytime to get some help on commands).
You should know that after following the step above, your partitions will be in the order they are on the disk, meaning all (or some) numbers might change. That means you might have to adjust your /boot/grub/menu.lst,
and probably also your /etc/fstab.
Now, you will get (on disk):
/dev/hda1 /dev/hda2 /dev/hda3
Why would it happen ?
It often happens when you delete one partition in the middle and insert two or more in the remaining space. It can also happen when you start adding partitions at the end.
For example if you had:
/dev/hda1 /dev/hda2 < delete, enter two new partitons /dev/hda3
After entering the two partitons, the ordering is:
/dev/hda1 /dev/hda2 /dev/hda4 < wrong ordering /dev/hda3