Part of the problem, Linux may list your system's configuration differently from Windows. (ie. Linux when booted may see itself as hd(0,...) instead of hd(2,...).
Since you don't know for sure which drives are being used to boot what, type "e" when you select the entry you want to edit during boot time. Next, select the (hdx,y) line and type "e" again. This'll allow you to edit the boot parameter. Change x and y, press enter, and then type "b" to attempt at booting. Repeat the prcoess until it boots normally for that operating system. Take note of the correct values, because this is only temporarily. Once you've booted correctly, edit menu.lst to reflect those changes. I've had to do this countless times when using neogrub myself to chainload linux entries on my external drive from my laptop as well as from the external drive itself.