Date: 201511
Local time of day: 0001-0600
Location: ZZZ.Airport, US
Flight conditions: IMC
Weather elements / visibility: Fog; Cloudy
Aircraft: B737 Undifferentiated or Other Model
Operator: Air Carrier
Operating under: Part 121
Flight plan: IFR
Mission: Passenger
Flight phase: Initial Approach; Final Approach
Airspace: Class B ZZZ
ATC / advisory: TRACON ZZZ
Reporter organization: Air Carrier
Reporter function: Captain; Pilot Flying
Reporter qualification: Flight Crew Air Transport Pilot (ATP)
Human factors: Situational Awareness; Workload; Distraction
Second reporter function: First Officer; Pilot Not Flying
Anomaly: ATC Issue All Types; Deviation / Discrepancy - Procedural Published Material / Policy; Inflight Event / Encounter Unstabilized Approach; Inflight Event / Encounter Weather / Turbulence
Detector: Person Flight Crew
When detected: Taxi
Result: Flight Crew Became Reoriented
Contributing factors: Weather; Human Factors
Primary problem: Human Factors

Narrative: 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.


Second narrative: [Report narrative contained no additional information.]


Synopsis: Low weather conditions; procedures; and a late runway change caused the crew to be distracted from fully configuring the flaps for landing.