Before you begin I recommend understanding what a partition is and the tools available under linux. http://www.ibiblio.org/ is a very good resource.. I expect the problem is related to a partition type being marked as type hidden.
You could use to gdisk(gpt-fdisk) get information on your paritions. I would get the latest version, I think that is 0.7. The creator of the tool has excellent documentation on how disk partion structures and information is set up and can be changed. I recently changed a disk structure I had created as gpt to mbr to fix a problem with windows not wanting to install on a disk. gdisk could probably fix your problem by recreating the mbr in a format that would make it accessible to your Linux system.
Testdisk should be installed as well. Testdisk is one of the best tools for fixing partition problems and I have used it numerous times. This might be simpler to use, but it is not as informative as to what is going on with your actual disk structures. I would use gdisk to find out what is going on and then use testdisk to see if you can make the changes that allow you to resize your partitions.
You can change your disk partition labels with fdisk and parted as well. The first step is to get the actual structure of your disk and make a back up. So that you can fix problems, and later go back if you need to. Use dd or diskdump command explained here at the bottom of the page.
Microsoft has this documentation that might help
I have found this problem with windows 7 and vista pre-installed on certain computers. My solution was to format the drives under Linux and reinstall MSwin afterwards. In one case I removed the hard drive put it into an external casing because Linux could not even see the drive to format it. I believe the bios was protecting the hard drive. Some thing the manufactures set up to prevent people making changes.
I expect your are not afraid to read. There is no short answer to your problem with out more specific information. I hope this will get you up to a point where you understand the problem and what tools you have to solve it. If you need help with a specific problem / tool post back and update your question.