in the scripts button window, look for a python script called fix broken paths.
Most of the time it will fix things for you…
I will Never,ever,ever understand why blender handles textures this way.
Why cant it just look in the root folder of the .blend, and if it cannot find the texture, automatically give the user the option to run the script.
I think someone has already mentioned this, but you can make your .blend file into a Gzip archive by simply using the auto pack feature . It will package all the external files into the .blend file. (which is actually a Gzip file now, you can open and examine it with 7zip)