If you go the route of homebrewing a code solution, the app will stay outside the coding mainstream, making the next person to take your role very hard to find, if they can be found at all. I always think of the customer’s long term interests, in addition to the short term pain/cost…and I do feel your pain – there will be no shortcut to the endzone for you, with that much non-standard code to update.
Aside from the other solutions that have been mentioned, have you considered querying a view that contains the desired join?
There's no substitute for fixing that nonstandard syntax, in any case. Even if you could persuade pgsql-hackers that the concept was good (which I really doubt), they'd not go for using : as a selector.
Thanks for the suggestions guys - using Natural joins and views is definitely something I'll look into to make selecting data from the database easier for users/app developers. In terms of insert/update/delete scripts, I guess I could write something to parse the existing scripts and update them to ANSI SQL instead of our custom version. That is probably a better approach than a custom psql that someone else will have to maintain going forward.