Thought about ninety per cent of it ! Don't know if you've any thoughts about this BB?
I don't. It depends on how much space you need in Windows. Many people also use a Windows partition for sharing data between Linux and Windows. Linux can handle Windows filesystems; Windows is less good at handling Linux filesystems (although you can train it...

)
Anyway I've taken your advise and ordered a live partition disc.
Actually that was not my advice. I was just trying to say that if you want to move around your partitions or change their sizes you should boot from a live CD (or a live DVD, or a live something) as you can't change the size of a partition that is in use. I hope the live partition disk you ordered is a GParted disk. (All partition editors are not equal, and a vanilla live PCLinuxOS CD might be all you need.)
If I mess that up ,I'll come a calling! Thanks for your help again,it's a great system with great support.
Anyway, to do what you want you should:
1) Boot from a live CD and start GParted.
2) Unmount your "D" partition (sda4) if it's mounted (which it probably isn't).
3) Reduce the size of it so that you free up space at the beginning of the partition, not the end. This is something all partition editors can't handle without data loss. GParted is quite good at it, but the operation does take a long time. (Freeing up space at the end of a partition is much faster, but that space wouldn't be of much use.)
4) Increase the size of sda3 (your extended partition) so that it takes up the space you just freed from sda4.
5) Temporarily remove your swap partitions.
6) Increase the size of your Linux partition within your extended partition, but leave enough unallocated space for a new swap partition.
7) Create a swap partition in the unallocated space. (You don't need two on the same drive, Particularly not two adjacent ones.)
8 ) Edit /etc/fstab and /boot/grub/menu.lst on sda so that your new swap partition is recognized by the system.