Well, I guess I jumped the gun in asking for help. I spent more time searching and came upon the solution. In case anyone wants it, here it is:
I added the virtual network eth0:0 as stated above. I put the clients I want to be masqueraded over the vpn onto that subnet. then I bring up the ppp0 interface for the VPN. I don't have it set up a default route at all. then I set up a separate table for the LAN to be sent to the subnet:
ip route flush table 18
ip route add table 18 to 192.168.1.0/24 dev eth0:0
ip route add table 18 to default via $PPP_REMOTE dev ppp0
ip rule add from 192.168.1.0/24 table 18 priority 18
18 is just an arbitrary number.
I discovered the solution here:
Linux Route Hacks
I just adapted the data presented there to my situation. wow. a few hours well spent.