I can think of a few reasons why the schedule is the way it is.
1) Canadian Olympic officials set the schedule for the preliminary round, and wants US vs Canada in prime time, where it will be shown on CTV in its entirety because all of Canada is looking forward to this game.
2) NBC wants to show programming with the broadest appeal, i.e. events that appeal to women and most Americans who really don't follow hockey. With Sunday prime time being the biggest audience of the week, NBC would rather show the ice dancing, plus go back and forth to other events, in order to maximize ratings. Devoting a 3-hour slot exclusively to hockey would probably be ruinous to their ratings, given the poor history of US viewership of hockey.
3) Given all this, NBC does have an outlet to show the US vs. Canada game in its entirety, although not on its flagship network, but yes, on a cable network without HD. Their thinking is that anyone who was interested in the game will go the extra mile to seek it out.
Certainly if you are a fan of hockey, which I assume everyone here is, then you would disagree with the programming decisions. However, I can understand why they are doing this. And guess what? It has nothing to do with politics- liberal, conservative, or otherwise.