I'm not sure if firmware will run on ATMEGA168 but as far as i know the only difference is a flash rom size.
Well, Atmel don't make it easy to find this info out, but after spending a lot of time investigating and buying different chips, I can tell you that same letter coded chips in different sizes should work identically, i.e. ATMega88PU is identical to the 168PU (of course except flash size), but the A's P's and PA's are different in some small and usually meaningless way, except when you are pushing the envelope (excuse the pun :P) or trying to figure out why something isn't working and then it can be this 'gotcha'. A good source of info for the differences are the AVRxxx notes which talk about migrating from ATMega2313 to ATMega2313A for example, the only problem being that they don't seem to be entirely comprehensive. And yes, by the way, the older chips are the ones without letters.
In order of age from oldest to newest you have:
ATMega88/168/328 - original versions 8K/16K/32K flash. These are also marked up as ATMegaxxxPU (see below!)
ATMega88P/168P/328P - improved versions, better silicon and better speed voltage range, bug fixes.
ATMegaxxxA - again improved versions, better silicon and better speed voltage range, bug fixes.
ATMegaxxxPA - again improved versions, better silicon and better speed voltage range, bug fixes.
Warning: I found out that PU does not mean 'P' it means the chip number without any letters ( for example ATMega88 ). The PU in this case just means its a DIP/DIL package.
There are also other versions around, namely the ones with a 'V' suffix. These are low power capable, and therefore also have lower clock capability. AFAIK they are obsolete now because the P chips and later can also do the same low power mode, and yet reach the higher rated clockspeed.
Going back to the original question that prompted your reply, if the OP can find ATMega168PA at a better price than the 88PA (entirely possible in volume driven pricing models today) then go for it. However I bet you won't find a ATMega328PA in Europe very easily - they are all being gobbled up by Arduino fanboys (I had to order a bulk amount of 328P's from the US last week).
That being said (this must be my record for my first forum post any where), I should build a SwinSID micro this week sometime and test these 88/168/328P's I have at 32Mhz...