Years ago I asked at my Migrol station why the prices varied. She told me that every Monday morning all Migro stations get a telefax stating the prices they must charge. These are usually not the same, and certain chosen areas are given lower prices to try and gain new regular customers.
Another aspect is the big multinationals have budgets of head offices, and marketing etc to pay for.
Smaller stations negotiate with the suppliers, the few refineries in Switzerland, and buy the fuel directly. Near the refineries are a few stations selling very cheaply, and then a few kilometers away the price is 15 cents higher. The refineries I know of are at Cressier (NE) and Conthey (VS) http://www.tanktipp.ch/index.php?mod=prix