Inside an expression you can access the velocity vectors from a fluid using get/setFluidAttr calls. It is relatively simple if the two fluids are the same resolution to transfer velocity from one fluid to the other.(if not you may need to use fluidVoxelInfo to get voxel coordinate locations). The simplest is to do getFluidAttr on the velocity and the set the velocity on the second fluid using setFluidAttr with the -add flag. If you did this both ways it would likely blow up over time, although you could scale down the velocity added each step instead of adding the full velocity. Perhaps better might be to blend a bit of velocity from one fluid into the other, for example:
vector $newVelocity = $myVelocity * .9 + $otherVelocity *.1; // (all vector types)
The numbers above would need to sum to 1, in this simple blending calculation.
Alternately you can try to have multiple fluids in a single container by emitting different color, density, temperature from different emitters.( with dynamic color and temperature grids) If you use temperature instead of density buoyancy then the hotter parts will be more buoyant. The fuel emission and grid can also be used to control shading. Temperature tubulence will also tend to make the hotter parts diffuse more as well, although in a more turbulent fashion than diffusion.
Duncan