Solved my own problem! I have to wait at least 1 clock pulse (15 usec) after the BF flag resets (buffer is empty) before looking at ACKSTAT, to allow the ninth clock pulse to complete. My fix:

SEN = 1 '(SSP1CON2.0) initiate smbus START
DO WHILE SEN = 1 'wait for start delay to complete
LOOP
SSP1BUF = $12 'send address 18 (level 2 smart charger)
SSP1IF = 0 'reset interrupt flag
DO WHILE BF = 1 'wait for buffer to empty
LOOP
PAUSEUS 15
IF ACKSTAT = 1 THEN.....(NACK - skip smart charger module)