This is an odd and annoying little problem! With a NetGear FA510C network card suspend works fine from the console if you 'cardctl eject' the card first, and is properly detected when the system is resumed.
However, if XFree86_SVGA [neomagic NM2093 chipset] is running, then any attempt to suspend the system instead results in either a freeze or an immediate powerdown [as if I had turned the power off manually without running 'shutdown'].
This also happens if I switch back to a virtual console first. I found that the following commands run from the console seemed to provide a solution:
ifdown eth0; cardctl eject 0; killall -STOP X; apm -s; killall -CONT X
...and was quite happy, until I realized that for some unknown reason this only works intermitantly, other times it freezes or reboots the system as before. This only happens if X windows is being used. Weird, [and annoying]!