Yeah, this has always bugged me also. It's unfortunate, but you'd be surprised how many people in the military also don't do this properly or don't know the proper etiquette. It's quite sad actually. There are actually different etiquettes for indoor and outdoor events that most people don't know. Technically, when indoors, one is supposed to remove their hat (something we only have to do today, in past times wearing one's hat indoors was a serious breach of etiquette), then face the flag and stand respectfully. Putting your hand over your heart is not the proper etiquette for indoor venues, but, common practice has become to do just that. Although technically not proper etiquette, customs are malleable and do change with time. Putting your hand over your heart when indoors seems to have become acceptable in common use.
When outdoors in civilian clothes, protocol is to stand and face the flag (not the singer, if one is used), remove your hat and place your right hand over your heart. In uniform, and not under arms, proper etiquette is to face the flag (or the direction of the music if no flag is visible), stand at attention and salute upon the first notes of the National Anthem (or To the Colors, if it's used instead). One remains standing at attention, without saluting, during the sounding of Retreat or foriegn National Anthems.
On military bases, the national anthem is played before movies (at the base theatre). Correct etiquette during the national anthem is to stand at attention during the anthem (even in civilian clothes). Putting ones hand over your heart is the civilian equivalent of a salute. One does not salute indoors except when rendering an official reporting statement. Other than reporting statements, saluting is only done outside when wearing cover* (the only time cover is worn indoors is when under arms). You'd be surprised how many people in the military get this wrong, and how many actually teach others that putting your hand over one's heart is the correct form. I've even heard some say that's what they were taught in NCO Preperatory School by their instructors!
There are exceptions made at certain times for official events, but the etiquette being used will be stated at the beginning of the event (such as a change of command ceremony being performed in a hangar, it might be stated at the beginning of the ceremony that it will be considered outdoors - even though it's in a hangar - and hats will be worn).
*cover = hat