Without root you only have the control the app developers give you: If an app allows you to configure this behaviour, you can do so -- otherwise you can't.
If your device were rooted, on the other hand, you'ld have several possibilities:
- Use DroidWall to define which apps may use 3g, which Wifi, which both, and which none (1st pic below)
- Use LBE Privacy Guard to do the same, and more (2nd pic)
- Use Autorun Manager to disable certain listeners of apps, so they no longer get informed about network changes (3rd pic; experienced users only!)
This is just a selection, and thus the list is very incomplete. As you already wrote your device is not rooted, it doesn't make sense to put all those details here; it's just to give you an idea what would be possible with root, not to elaborate all options ;)