Opening and closing drawers (like Budget Cuts), doors, and other physical interactions?

So, the question is simple. How do you do drawers like budget cuts does? They don’t use animation and it seems that physics are applied (momentum continues if you are pushing them in in). Yet they are constrained to a “track” and don’t seem to have finicky physics related problems.

We want to have doors, drawers, containers, etc that all function like they do in the real world. Unfortunately I only know how to do stuff like this with animation so I am seeking help.

Can you use splines as a track for drawers?