The only time you'd have to clear immigrations while on the western itinerary is if there's a change for some reason (such as we had on the 8/19/04 hurricane cruise) and you have to stop in at a US port after having been at a foreign port. Otherwise you don't have to get up early any morning during the cruise to do this.
Our cruise had to make a stop in Galveston, TX in the middle of our 10-night hurricane cruise, so on that morning we ALL had to appear in front of U.S. customs in the theater, and show ID.
From what I understand, the same applies for Canadian residents.