I've been annoyed by this many times: whenever I have a citation that has something other than a year in the year field (eg, in press, forthcoming) and I used natbib for citations I would always get things like: Keane (ress) rather than Keane (in press) like I wanted. After doing a bunch of searching a few times, I finally broke down and started hacking at the bst. Based on the thread discussing this, I figured out that one can just replace all instances of year field.or.null purify$ #-1 #4 substring$ with year field.or.null purify$.