A correspondent writes to ask why (2) is odd, for him, when (4) is OK:
(1) That's the worst book I've read in ages.
(2) ?That's the worst book I've read for ages.
(3) I haven't read a good book in ages.
(4) I haven't read a good book for ages.
'Is it something to do with the verb being negative?', he asks.
There are several factors here. First, intuitions may vary between British and American English, as the in construction is especially used in the latter. That aside, there is definitely an effect of negation, as these sentences show:
(5) I haven't read a book in ages.
(6) *I have read a book in ages.
There is also a difference in meaning:
(7) I've been reading that book for ages.
(8) I haven't been reading that book for ages.
In (7), the action is included in the time span - 'it has taken me a long time to read the book, and it's still going on'; in (8) it isn't. (8) is equivalent to 'It's been ages since I was last reading that book'.
So, to return to (2), here we have an action (the reading of the worst book) which is evidently over, so we need a sentence like (8): 'I haven't read such a bad book for ages'. However, the positive sentence suggests an inclusive meaning with ongoing duration (cf 7), which is anomalous - hence my correspondent's disquiet.