It is possible to write source code that will run on Windows or Linux, by extensive use of conditional assembly (gets real ugly real quick!), or by using portable libraries for *all* interaction with the OS. Besides the obvious C library, vid's FasmLib or the HLA standard library exist in Windows and Linux forms... maybe others. Besides the "underscores or not" issue, other trickery may be required.
As a general rule, programs written for Windows won't run on Linux, and visa versa (different OS, doncha know...). Furthermore, there are differences between Tasm and Nasm syntax - even if it assembles without complaint, it may not be right. Nasm is supposed to assemble some subset of Tasm code with the "-t" switch and some include files - I've never gotten it to work without some "hand editing" of the source.
I don't think we can help you find the problem without seeing the code. Post it here, if it's not too long, or put it up somewhere we can find it... mail it to me - fbkotler verizon net - if all else fails, and we'll see if we can help you get it going...
Best,
Frank