Because of the nature of my job, there is often a need for a skeleton crew on holidays. It's unavoidable...someone's got to do it. We get overtime on top of holiday pay for it, and what we do is this: volunteers are always asked for first...you never know, someone may want the time. If not enough people volunteer, my boss assigns someone. If you're assigned, it's mandatory. And the person she assigns is typically someone who never volunteers.
Usually people will volunteer for those holidays where they don't have plans. That way, when they do have plans they have a valid reason to not be assigned..."Oh, christmas? Well, I just worked over thanksgiving."
ETA: yes, overtime can be mandatory as long as you are actually paid overtime after 40 hrs.