The issue isn't S-Video, per se, but all the scalers that are placed in the output chain for the s-video output on PC video cards. Those outputs are intended to convert standard "desktop" resolutions to "something that can be displayed on a TV". Many won't even accept native TV timings and will shut down (though I hear the newer ones are better about this) if you force the card into such a mode! In general, consider the S-Video output on a PC useless in terms of "native" video output from arcade/console emulators. Even TV compatible timings will probably be re-scaled prior to output, if they're supported at all.
However, I've had very good luck using outboard "RGB to S-Video" converters. Run your PC with native standard res timings however you wish (Soft15k, ArcadeVGA, etc.), hook the RGB (aka "VGA") output up to the converter, then plug that in to your TV. This removes all the scalers. With a quality TV, the results are usually VERY good. My tests with a Sony WEGA showed quality nearly indistinguishable from a quality arcade monitor except in side-by-side comparisons (edges were slightly softer), though overscan had to be adjusted in service mode for proper monitor use, as would be expected. Your mileage may vary depending on how good the S-Video input on your TV is. If your TV supports 525 line (60Hz refresh) inputs in PAL mode, that will give slightly higher quality than using NTSC mode.
Now, composite will always look blah, but S-Video doesn't have to. For best results, disengage all the filters on your TV: set sharpness to neutral, ensure saturation is correct (it's often too high since it makes colors more "vivid" to people), and ensure brightness/contrast are correct.
Some have also had good luck with the built-in YPbPr component outputs found on some PC video cards. Apparently these outputs can be configured to not use scalers. Some of these cards also support S-Video output via the "TV" output and may not require scaling for such outputs when supplied TV compatible timings.