The cruise line will not guarantee your itinerary and will make changes if necessary. Some cruises may eliminate or replace a port of call based on weather, crime or a variety of reasons. The best way to handle this is just to understand that changes can happen. The captain and crew are always going to do what is best in their opinion (or shore side management’s opinion) for all guests and crew onboard. They are not making changes to upset you or ruin your vacation. When it comes to bad weather, I would certainly rather they change the itinerary rather than have a horrible day in a port of call.
It is important that you keep your profile with the cruise line and your travel agent updated with your plans prior to the cruise for just the situation when the itinerary must be changed. Even if you only booked the cruise with your travel agent but booked a pre-stay independently or with another agent, you should make your cruise agent aware of your plans.