Your code is totall ok. Although it makes no sense to use the if expression inside a while loop. total_secs == 10 is even dangerous, cause it is not guaranteed, that you'll get the exact moment when total_secs has the value of 10. Better use a simple approach like
wait(-10)
snd_play(landing_snd,100,0);
However if the sound is played that is not the matter. You should ensure that you have:
* a clean installation of your sound driver and directx.
* set the appopriate volume on your soundcard and on your speakers.
* a sound file with good quality. 22.000 hz at 16 bit should be ok for wav files.
Try playing the soundfile with windows media player (or any other preferred player like winamp etc.) Does the sound sound better? If so you have for sure a driver or directx problem. Don't bother about your code. It is ok. Is the sound better when you play it with media_play instead of snd_play? If so you can be sure to have a direct sound problem. You can try to click "start", "run" and type "dxdiag.exe". Hit enter. In the upcoming window change to the sound tab and move the slider for hardware acceleration to the left. Does that help?