Hello necromancer,
Firstly you are quite right, the big city hotel prices can be terrifying but you are on the right lines when you ask for "
accessible to a larger city".
Can't help you with Zurich but have a few suggestions elsewhere
Basel (easyjet hub) - who says you have to stop in Switzerland to visit the city? The German border runs through the northern suburbs and prices drop off as you cross it. Go a short distance from Basel and it can be cheaper than Britain. In September I stayed in Bad Säckingen on the German side of the Rhine, 18 minutes by train from Basel. €95 a night for a double (€58 single and discounts at weekends) for a decent room with south facing balcony looking to the Swiss side of the river, buffet breakfast and free use of the indoor pool and sauna. There were cheaper places without pools. And once you've checked in the resort guest card gets you free travel back to Basel (and throughout the Black Forest). Only catch is that the last German train from Basel is around 11pm or just after midnight on the Swiss side (which wouldn't be free) so this would rule out any clubbing - then again both sides start up again at just after 4am so maybe it would work! And Säckingen has it's fair share of pubs anyway.
For Geneva think France - once again the border runs through the suburbs. Try the town of Annemasse, the Geneva trams run right to the boundary. There is an Ibis hotel by Geneva main station which their website shows a standard rate of around £80 for a double room plus about £7 for breakfast. A tram ride away in Annesmasse Ibis have a standard rate of £40 with the option of getting it even cheaper for non refundable advance bookings - and their breakfast is cheaper as well. I bet you wouldn't be able to tell the difference once you were in the room.
Interlaken may not be too pricey in April but also consider Spiez at the opposite end of lake Thun. Easy to get to from Basel or Zurich airports and only 30 minutes from Bern city centre, last train back midnight/ later at weekends. It also has a better view of the Bernese Oberland mountain peaks. For Interlaken or Spiez you would need to put a bit of thought into travel, simply buying base rate train tickets might be expensive - did you intend getting further into the mountains? As Alsacienne says, a half price card might be an option or even a Swiss Pass depending on how long you stay and how much you want to travel.
Steve