The problem here is the same as you describe: you check the uniqueness of the entire row, your data set looks like this:
CarItemId CarId
--------- -----
1 1
1 2
1 3
2 1
2 2
3 3
CarItemIds , , CarIds - , 3 CarIds, SQL Server?
, CarIds:
SELECT tblcaritem.caritemid, max(tblcar.icarid)
FROM tblcaritem
INNER JOIN tblprivatecar ON tblcaritem.partid = tblprivatecar.partid
INNER JOIN tblcar ON tblcaritem.carid = tblcar.carid
WHERE tblcaritem.userid=72
GROUP BY tblcaritem.caritemid