Cruises are rarely full. Just wait and book last minute.
You would need to read the relevant cruise company's terms and conditions for each company has its own rules. How far in advance will your friend know exactly what her commitments are? As you may well find that if your cancellation is left too late she will still have to pay the full cost of the cruise. Also as is the case with Cunard for instance if you cancel she will lose her deposit and obviously this could be a considerable sum. My advice is to wait and see what her commitments are and then look to see if the particular cruise you want is still available.