About the DLL name, LuaBinaries (and LuaRocks) uses lua5.1.dll, but LuaBinaries also provides a lua51.dll that is a "hard link" to lua5.1.dll, so modules compiled against lua51.dll will also work.
About mixing runtimes, generally the answer for Lua is yes, *if* you are using a single Lua DLL. The sole exception in the Lua core is if you want to do anything with the file handles that Lua opens by directly unpacking the handles from the io userdata, or if you mess around with the handles for stdin/stdout/stderr. LuaFilesystem does this, so it has to be compiled with the same runtime as the Lua DLL (and they both have to be a shared runtime).
Pluto probably has to be compiled with the same runtime, too, as it messes with Lua internals instead of restricting itself to the public API. If you want access the internals of another library directly you may also probably should link with the same runtime as the library, such as unpacking and manipulating sockets from LuaSocket directly.
The module documentation should warn you on how it has to be compiled. If you are the module author it's good form to mention runtime dependencies.
This is a bit offtopic, but I can't seem to find any info on it. Is it "ok" to mix dlls/binaries compiled with vs8 and vs9? Or does the
windows system choke and crap out?