Both serves different purpose -
IMSI - International Mobile Subscriber Identity
MSISDN - Mobile Directory Number
One is used to identify a subscriber by operator. Other is used to route the call. A subscriber becomes customer of an operator by buying the SIM card of the operator. At this point the subscriber is allocated an IMSI and an MSISDN. IMSI is used to identify a subscriber by the operator. But MSISDN is the number which is used for dialing. So when you call your friend/a mobile, you call the MSISDN number of the mobile, not the IMSI.
For Eg: Consider 2 subscriber's A & B. And assume the values given below;
IMSI (A) : 987123111111111
IMSI (B) : 987124111111111
MSISDN (A) : **********
MSISDN (B) : **********
So when A would like to call B, A dials the MSISDN number of B, i.e, **********. And same is true for vice-versa.
Now coming to need of IMSI, when a mobile is switched on, it needs to identify and authenticate the subscriber with the network. Only then the mobile will be able to use the network services. So to identify the user in this scenario, the IMSI of the subscriber is used. In fact the IMSI is burned in the SIM card, which will be used while authenticating with network. MSISDN will not be stored in the SIM.