What is happening is that both the UILabel and the contentView (which is the UILabel's parent/super view) are being resized smaller to compensate for the disclosure indicator accessory after cellForRowAtIndexPath is called. That is why the first time the cell is displayed, everything was working fine. I had set the width of the UILabel to 290 in cellForRowAtIndexPath and then the UILabel resized from 290 to a smaller amount to fit correctly at some point after cellForRowAtIndexPath was called.
The next time the cell gets displayed and is retrieved from the dequeueReusableCellWithIdentifier function it had already had the disclosure indicator from before and therefore, was already resized smaller. When I reset the width to 290 again, it never resized to fit because the disclosure indicator was already present. Because of that, the UILabel was too large.
Basically, I need to size the UILabel relative to the size of it's parent view (contentView) instead of using a static value of 290. That way if the cell hasn't been resized yet (which is the case the first time the cell is to be displayed) it will be resized appropriately. If the cell has already been resized so will the parent view so setting the UILabel width based on contentView will produce the desired behavior.