I used to be a big supporter of rain-x, and it does work great, but I've had the exact same results by just throwing a coat of wax on the windshield. Wax gets the dirt, bugs, tar off and it lets the water bead up -- just like off the body. We have **** weather here in Chicago and I've never had any fogging or haze more than the usual with wax. And it's cheap. Also, take an alcohol wipe and clean the rubber blades on the wipers every so often. Yeah, yeah, I know rubber degrades the blades.... but lets face it, they're rubber and are only effective for so long anyway. When you clean all the **** off them they regain their smooth edge and are more effective until they completely wear out.
X2 on the alcohol wipes & wax. In a hard rain I don't even need wipers when moving . A scotchbrite pad (red) when washing & prior to waxing also cleans the crud off really well.