I tried something like this once. To put it simply, I used "camera landmarks", that allowed me to control the camera considering the relative player's position. Here is some sketch to illustrate the concept.
The red area represent the OriginalWindowWidth. It is clearly NOT wide enough but... well. Let's forget about that.
We consider the player comes from the left.
Red blocks are camera landmarks. When the player is out of the red area, the camera is following the player. When the player enters the red area which begins at cameraLandmarks.X - cameraScreenWidth / 2, the camera stops (to indicate the end of this layout part has been reached). Then, when the player cross the green line (go to another part of the layout), the camera moves to cameraLandmarks.X + cameraScreenWidth / 2. Etc...
That was kind of messy actually, but the fact that you point out the problem make me think I should try to make it properly.
Hope that gave you some inspiration at least.