older fiats, and other european cars use a variant of OBD2 called EOBD (european OBD), which basically means that while it may have an OBD2 connector (or not), it does not necessarily have to comply fully with the software or protocol standards. This means that proper OBD2 software and hardware will probably not work with it. specifically, FIAT seem to use the KWP2000 protocol, and even then it seems to vary among the cars. Thats why its difficult to buy a scanner that will work properly with older pre OBD2 compliant FIATS, peugeots etc.
the guy who runs www.ozenelektronik.com has the mOByDic box, which works with EOBD. I have it, and have tried it on several older cars and it will work up to a point when it detects a valid EOBD protocol, but after that its down to the software because the supplied software is only capable of the basic EOBD stuff - fault code reading is dodgy or doesent work at all with most older cars.
He has also released a chip (FInAlisT) to replace the standard mobydic one which is specifically for the FIAT KWP2000 implementations. its not cheap though, so I'm going to wait a while and see how it works.
Its down to the software to talk to the specific ECU in question. thats why the professional diagnostics like the Brainbee, crypton etc cost so much - a lot of work goes into them to work with every possible car.
OF course, if you have a newer, fully OBD2 compliant car then its no bother getting things to work..
As regards flashing and chiptuning, the KWP2000 flasher box is probably the most common, but again its obtaining the required software and drivers (dll files) to allow it to talk with the exact ECU in question (e.g. the BOSCH EDC15 and newer EDC16 series etc, and all of their variants)
Owen.