I've run Ubuntu 11.10 and Windows 7 alongside each-other, with a separate NTFS data partition as you describe, for some time now, and my solution has been to just ignore this, and get to the GRUB menu regardless if I shut down or hibernated the last time I left my computer.
The effects of this are the following:
Hibernate from OS (a). The computer will save state to disk and shut down.
Start the computer. It will go to the GRUB menu as usual. Choose which OS to start.
If you start in OS (a), you will resume from hibernation just as expected.
If you start in OS (b), you will start that OS from whatever state you left it last (hibernated/shut down).
If you started in OS (b), then restart the computer and shut down OS (a), it will resume from hibernation just the way it did without starting OS (b) in between.
In short, my machine seems to handle hibernation and shut down of the two operation systems independently, and the only feature I don't have that you talk about, is the lack of choice in which OS to start after hibernation. This makes it possible to, for instance, work on something in Windows, realize you need to do something in Ubuntu so you hibernate, restart in Ubuntu, shut down and resume Windows - something that would not be possible with your desired setup.
I leave no warranties that this is indeed trouble-free, or works on any machine - but so far it's been trouble-free for me, and worked very well on my machine.
Update in response to comment:
chkdsk starts when you boot into W7 after hibernating and using Ubuntu in between, it might be because Ubuntu mounted the W7 partition automatically. Probably Ubuntu changed something on the disk, which got W7 confused.
Try disabling automatic mount of the W7 partition - either by commenting out the correct line in
/etc/fstab or by setting some options in a GUI somewhere (for some reason I can't find the correct settings program...)