Aircraft: MD-82
Phase of flight: Final Approach
Anomaly: Deviation - Altitude Excursion From Assigned Altitude; Deviation / Discrepancy - Procedural Clearance; Deviation / Discrepancy - Procedural Published Material / Policy; Inflight Event / Encounter Unstabilized Approach; Inflight Event / Encounter Weather / Turbulence

[Weather at destination was] 8;500 broken; unlimited visibility on approach; on 2 mile final there was a small; localized; but heavy rain shower located in the vicinity of the approach end of Runway XXL. The visibility within the rain shower was about 3/4 to 1 mile.The Captain was the PF and I was the PM. We were on a 3;000 foot clearance descending from 4;000 feet to 3;000 feet. On about 10-12 mile final; the Approach Control cleared us the visual approach. The approach ends of Runways XXC and XXR were visible but not Runway XXL; and there was a small rain shower in the vicinity of XXL. I then queried the controller and told him we could not accept a visual to XXL due to the rain. I relayed we could see XXC and XXR; but not the left. During this period the Captain entered 2;000 feet to set-up for the visual; but I did not realize it. Meanwhile the controller cleared us for the ILS after my weather call and switched us to tower frequency. The Captain missed this call and continued to descend to set up for the visual. I changed frequencies and continued to look out for the end of XXL. Descending through 2;700 feet the Captain and I discussed what the clearance was. During our discussion the final approach monitor called us and; 'asked if we knew where we were at.' Following monitor's call and our discussion we sorted out that we were flying the ILS and not the visual. At that point the Captain armed 3;000 feet and climbed back up to our assigned altitude. We bottomed out at 500-700 feet below our assigned altitude. We then flew the ILS the rest of the way.On final at about 2 mile final we entered the rain squall. We had previously briefed the ILS to XXL backed up by the visual. Other than my observation on 10-12 mile final we had no weather indication the visibility was below a mile. I've seen these types of showers before and knew we might enter some heavy rain with low visibility at the end of the approach. The Tower Controller did call out airspeed gains and losses of 5-10 KTS due to gusty winds. Looking back at the situation now there might have been minor low level wind shear associated with the rain shower dissipation. The ATIS was 8;500 broken with unlimited visibility which was the case at most parts of the [airport] complex. The Captain flew the Cat 1 ILS while I monitored. At about 1 mile from the threshold and 100 feet above minimums; we could see the threshold lights and the Captain called out 'runway in sight'. I then looked back inside at the instruments. I noticed we were drifting off course and sinking slightly. I then looked back outside at about 100-150 feet AGL; I noticed we were offset about a runway width to the right and transitioning from 3 red/1 white to 4 red. At this point despite the sink; we had the runway made vertically but I was concerned about the offset. I called go-around because I felt like we were too far to the right to make a safe landing. Shortly after my call we got the glide slope warning. Around this time I heard the Captain voicing the go-around flow; so I thought he was going around. I was watching for him to push up the power. Before I could say anything else; he banked left and made a bid for the runway. I considered saying go around again; but by this time he was correcting and; I felt he could make a safe landing. We were outside parameters for a stable approach and we should have gone around. The landing was pretty rough. We landed in a slight crab with 5 degrees of bank. It reminded me of some of the landings in the simulator. The spoilers did not deploy. I called out; 'no spoiler'. However the captain did not react. Based on the contaminated runway; the length of the runway; the bad landing; and the fact that the Captain was working hard to get the jet straightened out; I pulled the spoiler handle aft to deploy the spoilers.We exited the rain squall about half way down the runway and were actually able to exit at [the normal point]. We debriefed the incidents. He said he did not hear my go around call. My call was in a voice slightly louder than a normally cockpit conversational voice. The wind noise due to depressurization and the wipers were pretty loud. I should have made the call louder. I did not repeat go around because I heard him saying the go around flow. Prior to this approach; he had flown a very good jet.Areas of interest:Fatigue: We were on the last leg of a two day trip with five legs. The Captain stated during cruise on the last leg he was a little tired; but he looked fine to me.Approach lights: I think we would have done better laterally during the end game of the approach if the full approach lighting system was illuminated. I don't think they were NOTAM'd out.Go around call: I should have made the call louder and repeated the call to make sure he went around.Go around decision: We should have gone around instead of trying to save a bad landing.Complacency and the Weather: Although we could see the shower; I think we got caught off guard a little bit. We had a real smooth 2 day trip up until this point. This is the first time that I had seen an approach go unstable. I think we both let things sneak up on us a little bit. MD80 First Officer reports being cleared for a visual approach and declining due to a rain shower over the end of the runway. The flight is then cleared for the ILS; but the Captain apparently does not hear the clearance and continues on the visual. ATC issues an advisory and the Captain climbs to intercept the glideslope. At minimums; in the rain shower; the approach becomes unstable and the First Officer calls for a go around; but the Captain lands.