Someone else may have another suggestion ... but I believe you'll need the ability to use a custom carrier. That's not on all plans. If you do have that, we personally use an app called Bespoke Shipping and it is literally "bespoke" code for you. In your case, I'd suggest having a tag on the product like "no_overnight_shipping" which would filter out any overnight methods. Good luck!
If you're still looking for a solution to this, Intuitive Shipping is a great way to go. You can customize what products will apply to any method of shipping, and even apply multiple different scenarios so that customers only pay the costs for shipping, nothing more nothing less. It's a great way to keep things simple, and profitable. Hope this helps!