B737 Undifferentiated or Other Model
Flight Crew Air Transport Pilot (ATP)
Situational Awareness; Workload; Distraction
ATC Issue All Types; Deviation / Discrepancy - Procedural Published Material / Policy; Inflight Event / Encounter Unstabilized Approach; Inflight Event / Encounter Weather / Turbulence
Flight Crew Became Reoriented
Weather; Human Factors
This was an early morning flight.  We were following a heavy 777 on a published arrival.  On the way in; Center asked us what our RVR requirements were.  We were expecting low ceilings and fog and this confirmed it.  We then briefed and set up for the CAT II ILS.  We had flown into and out of the airport the previous day and had to fly the same approach as well as a low visibility takeoff.  We felt comfortable and not rushed as we were vectored off of the arrival for the approach.As we were being vectored for the approach we could see the runways and approach lights but could tell there was fog on the approach.  ATC [then] told us the 777 needed the outside runway for the CAT III and asked if we could take the inside runway.  Since we were comfortable and had been operating in an out of there a lot recently; we accepted.  However; it was a rushed setup.  ATC gave us a vector and cleared us for the approach.  They told us to maintain 170 knots and to contact the tower.I set 170 in the MCP; armed App and the second Autopilot (AP).  We intercepted the localizer and proceeded on the approach.  The runway was visible all the way down the approach.  I briefed that once I had sight of the runway; I would proceed visually to land if we got an approach warning for the [heads up display]; since landing would no longer be predicated on the [heads up display].  On short final at or near the runway edge we got an aural 'terrain' message. I confirmed via the ILS and PAPI/runway that we were on glide path and runway centerline. I then saw 'approach warning' in the [heads up display]. This all happened fairly quickly. We were over the runway in a position to land; so I elected to land and figure it out once we taxied clear of the runway.  As we taxied clear of the runway and the first officer was completing his after landing flow; he noticed the flaps were at 15.  We flew the approach at flaps 15 and 170 knots.There were a few things we failed to do. First; we let ourselves get rushed into a situation initiated by ATC (last minute runway change) and failed to complete the landing check. We were so fixated on the last minute changes we lost sight of the bigger picture. We should have stayed on the briefed runway. Second; I was complacent because I could see the runway when I was expecting an approach down to at/near minimums instead of being spring loaded for a go-around. I should have gone around at the first sign that something wasn't right. Lastly; due to letting myself get rushed; I failed to do a final 'gear; flaps; speed brakes; lights' check like I do on every approach.
[Report narrative contained no additional information.]
Low weather conditions; procedures; and a late runway change caused the crew to be distracted from fully configuring the flaps for landing.