Once upon a time I was having the same issue, only way, way worse. The TAZ I was using was built using z-nut mounts printed by a non-reprap printer (that shall remain unnamed) that, even at the densest infill setting, did not fill in the space between the perimeters on the curvy bits. The result was very weak z-nut mounts that would allow a large range of motion in z without any turning of the z-motors and z screws. I replaced the z-nut mounts with stronger ones, and the problem went away almost entirely.
Afaict this mode of failure is caused by hysteresis – the z-axis is homed, then prints the first layer and indexes up for the second layer, but the motion is taken up in the springs and the z-axis assembly does not move at all. The result is that the 1st, 2nd, 3rd, and, depending how bad the problem is, 4th, 5th, 6th, etc layers are printed all in the same plane.
Different printers have different degrees of hysteresis depending on how much friction there is between the z-bushings and the z-rods (which depends on how well aligned the two bushings in each double bearing holder, and how perpendicular the x-rods are to the z-rods, among other things).
You can counter the hysteresis by measuring how much there actually is, and then putting a move-up-in-z command (which shouldn’t be enough to actually move the axis, just enough to preload the springs) into your start gcode in slic3r. The idea is that this will pre-load the z-nut mount springs such that when they index up for the second layer the axis actually moves, rather than just flexing the z-nut mount springs. Here is an example of some start g-code for a printer with 100 microns (.1mm) of hysteresis:
G28 ; home all axis
G91 ; set relative motion
G1 Z0.1 ; counter hysteresis
G90 ; set absolute motion