you could try to debug the game via gdb (see wiki) and start ufo with "+set developer 1 +set vid_fullscreen 0" as parameters
* for endless loop: a strg+c in the debugger would stop the program
* otherwise (in case of a segfault) this is reported in gdb, too - just hit alt+tab to get the gdb console
type bt and print the output.
to install gdb (the debugger) just install dev-cpp (wiki) and add c:\dev-cpp\bin to your path variables (Workspace->Settings->Environment Variables)
that would really help to track that bug down. everything else might be guessing.