Das ist meistens einfach Psychologie. Du sollst als Einkäufer im Supermarkt die 5 vor 5,99 sehen und 5 denken und nicht 6 denken. Dadurch sind die Menschen tatsächlich bereit, mehr in den Wagen zu packen und erst an der Kasse wird einem so richtig klar, wieviel Geld man da wieder ausgegeben hat.
Bei großen Summen, wie z.B. für ein Auto ist der Effekt nicht so wirksam, denn so eine Anschaffung überlegt man sich ja normalerweise etwas länger und gründlicher, als ein Produkt für 0,99€ in einen Einkaufswagen zu packen.
Manchmal (z.B. in der Apotheke) kommen die krummen Preise deshalt zu Stande, weil die Produkte zu einem, vom Hersteller vorgegebenen Preis verkauft werden müssen. kann zwar ein "gerader" Preis sein, aber dann muss halt noch die MwST draufgerechnet werden, die ja auch in % vorgegeben ist und somit entsteht dann sowas wie 3,47.