Lion (10.7) or Mountain Lion (10.8)? I don't know if it would make a difference, though. If you are running Lion, you might want to post on the Lion forum as I don't have Lion os to test on.
What Input Source are you using (Language & Text System Preferences)?
While there, select Keyboard & Character Viewer and Show Input menu in menu bar.
Then, select Show Keyboard Viewer from the Input menu (flag). Press the shift key and watch what happens to that key on the Viewer. Does it change to a _?
Did you install anything that would alter your keyboard layout?
Does the shift key work normally, otherwise?
the command for "shift+-" for "_" do not work
The most common cause for one key not working is that it has been somehow set as the trigger for a special action. Double check your settings in system preferences/speech to make sure this is not the case for Text To Speech or Speech Recognition.