What we do is have the Xpression machine connected to a a shared NAS where I drop the images into a folder. Then in the Scene, I make a hidden text object the child of the quad that should have the image. The text in this object is the filename of the image. Then on that text object I do a volatile texture in the OnSetText script.
dim Quad as xpBaseObject
Self.GetParent(Quad)
Quad.SetVolatileTextureFile(0,"H:" + Text)
That was just off the top of my head, but thats how we do it. This means you dont need a material for every image. Instead it will update the material with the image file only when the scene is online.
Hope this helps.
#XPression