Use the VIA controls. You should have more control over your sound setings. There may be an ADVANCED sound settings screen (tab/ box/button), you may have more options in the advanced screen.
The Windows sound control will be more generic....but check it anyways.
Here is the basic view of my built in MB soundcard "nvMixer". Check your VIA sound settings to see if there is a MIC BOOST. Otherwise set the volume level high enough where it sounds good enough, but not distorted.
That drop down menu in my INPUT area gets changed every now and the by other apps I use. I have to go in here to change back to Microphone in order for my MIC to work in game & TeamSpeak.
My BF2 sound settings. Use the "START MICROPHONE TEST" button to see how the VOIP sound level/quality will sound in game.
I'm not sure if you have your BF2 sound card renderer set to HARDWARE/ HIGH/ EAX? If you do, try going back to software renderer. As there are only certain sound cards that are supported in HARDWARE mode. Mine happens to be one of them. There is a list (text file) of supported sound cards in the BF2 directory.
When you eventually start using TeamSpeak (much better than the ingame BF2 VOIP), you also have another microphone settings to configure. It's real easy to use and it also has a microphone test button. So, that you can hear the sound quality/ level of your Mic.
Check VIA website to see if you have the newest drivers and control software.