1. Tap in, tap out. SEPTA's current NPT Regional Rail policy is extremely convoluted and commuter-optimized, essentially giving free fare one way in exchange for double fare the other. Anywhere where there's a viable workaround, this will ensure overloaded trains on the free side and empty trains on the double-fare side.
Instead, Oyster uses a validator system, which is just an electronic update of a proof-of-payment system. Proof-of-payment systems are tried and tested, and are in use on the River Line and throughout the MBTA and most newer commuter-rail and light-rail networks. And best of all, they can be policed in the same manner as other proof-of-payment systems--just check and see if the card is indeed showing an active trip being taken, and fine the holder if not--like a transit traffic ticket.
2. Guide to workarounds. Another issue NPT has is zone implementation. Annoying, but the only alternative is a per-mile fee. Instead, use an Oyster-style intrazone transfer system. On the Oyster, where route transfers can avoid zone surcharges, pink transfer gates are installed, allowing for free transfers and cheaper routes. Think like at 69th St. or Fern Rock, here.
Keep in mind the fare capping system I am proposing caps fares at the most expensive single round trip fare used. So if Mr. Noda went to Upper Darby but caught the 104, the fare cap would remain at $4.00 (since both the El and 104 within Upper Darby Township charge a $2.00 cash fare).
Of course, the problem of excessive "premium service" cost for the 123 remains, but a fare capping system makes it more bearable.
4. Make it easy, make it easy, make it easy. This needs to become a mantra. Make it easier on the user, make the system more transparent, and don't unfairly penalize folks who don't have a card. On the other hand, make it easy and natural for everyone to have a card--much like the average New Yorker's wallet has an MTA card, and the average Londoner's an Oyster Card.