3D textures are often procedurally generated.
A turbulence function can be used to generate some natural looking textures such as marble & wood grain.
Example: marble.cpp
3D textures are used in scientific visualization for volume rendering.
A dense stack of quads are rendered, running through the volume.
Alpha transparency is used to see into the volume.
A 3D texture could be used in place of a series of 2D textures for a texture movie.
In this approach, rather than switching textures to animate, the R coordinate is changed - it becomes a time value.
This method allows OpenGL to interpolate between frames.