Your circuit diagram shows the input to the MCU but not the output circuit. Are you by chance driving the buzzer/relay directly from a GPIO pin? If you are, two things.
1) This would explain the buzzer working once and not the relay. Buzzers need a lot less current and can be driven directly depending on the buzzer. Relays need more than a GPIO pin can provide.
2) Relays are inductive so if you drive them with a GPIO without a protection diode, the voltage kick at turn off will fry your output pin. This might explain why you said it worked once. Is the buzzer no longer working? You might have fried that pin.
That is bizarre, 40mA is a lot for that chip even when it's in fully active mode (I don't think it draws that much even if you have it in a busy-wait loop nonstop at full 16MHz active mode). What else is in the circuit?
Also where are you measuring the 40mA -- at the Vcc jumper between the EMULATION and main portion of the launchpad board, or from the USB port? The emulation layer would use a fair amount of power keeping its chips & LED functioning which could account for that although I'm not really sure. And if the Vcc jumper is still installed but you're powering it from an external battery, the emulation layer (SBW programmer/UART) chips up top might still be receiving power back through that jumper... removing it should tell you.