Because you didn't read the README or INSTALL files, probably. There are three general reasons GCC/2 will crash:
Not true as of gcc/2 2.3.3. Gcc will invoke a small stub program called ld.exe that in turn will invoke link386 for you. If the command line is too long for the ever-pathetic link386 to handle, ld will properly create a response file.
It is easier to use gcc/2 to call link386 than to do it yourself since gcc/2 will also arrange to call a subprogram called "collect" that is required before linking a C++ program.
Also, gcc/2 is just plain easier to use than link386, for example:
gcc -o foobar.exe mydef.def foobar.cpp mylib.lib
will compile foobar.cpp, link with mylib.lib, and pass the linker definition file mydef.def to link386 in the correct order. Link386 demands that you know which types of files can be put between which sets of commas on the command line.