Well... take a look at this:
http://forum.nasm.us/index.php?topic=810.0First, notice that his source code calls C library functions - there are no Linux-specific system calls. Note that "main", "printf", etc. don't have underscores on 'em - Linux doesn't use 'em (except _start). Note that Brainiac's makefile adds "--prefix _" to Nasm's command line - this adds underscores to everything declared "global" (or extern), which Windows needs. Otherwise you'd have to change your source code.
Nasm will easily create linkable object files for either system - "-f elf32" or "-f win32" - but your Linux ld is expecting ELF linkable objects, and produces ELF executables. Windows needs a PE ("portable executable") executable format, and I don't think there's any way to get one out of Linux ld. But the MinGW package will run on Linux and produce what you want... at least according to Brainiac. I'd try it just the way he says, and see how it goes.
If your source code doesn't stick to the C library, and uses Linux-specific system calls, you'll have to convert them to equivalent Windows APIs. Probably easier to persuade person #2 and person #3 to switch to Linux!
There are alternatives... the HLA standard library exists for both Linux and Windows, too. I'd stick to the C library...
Best,
Frank