There is the GL_ARB_invalidate_subdata extension that was introduced this past summer. As it's very new it will only be supported by newer drivers. You should be able to invalidate a 3D texture with that. However, you'd still likely have to upload the texture again when the context switches back to your app.
http://www.opengl.org/registry/specs...te_subdata.txt
Out of curiosity, how big is "a very big 3D texture"? The GPU should swap out the other texture (or parts of it, perhaps) when it needs the space. Is there a specific reason you feel you need to manually intervene?