I think the solution is to buy better sheets. The stuff I've bought in big box linen stores always turns out to be crap, no matter the thread count or price....sizes inconsistent, fitteds not fitting, flats too short, all of them too wide, wrinkled mess by morning, wears out quickly, etc.

I know i sound like a broken record, but Lands End has great sheets...and a great price if you shop their clearance section. My LE sheets actually stay on my bed.