Why does Blender have to be different to all the other 3d packages out there? For example I am modelling a car and need to cut holes in the front bumper for the tow bar covers, however if I follow the method that is outlined in a 3ds max tutorial then it just turns into a big fat ugly oval due to the subdivision. The only way around this is to add edge loops to get it nice and square, but this means you end up having sharp edges on the bumper.

Is there another solution to this?

What is the method used in 3DS Max are you refering to ?
Link to that tutorial could be usefull so someone can give a workaround or a method to help you.

Subdivision will always give you this result no matter what 3D software you use, depending on your methods, but can be countered by thinking ahead in workflow or adjusting the mesh after the operation. Without a visual aide of how the shape is created in 3DS Max, tools used, so on and so forth, and your result for comparison, it is hard to help you.