Think of it like this any movable object in your game world exists in four distinct 'spaces', collision, physics, geometry, and the world. The world is your objects position and orientation, the geometry is the mesh that is associated with the object, mass/inertia tensor velocity/acceleration (linear and angular) all are properties of your object in relation to the physics 'space'. When it comes to collision you have a variety of different ways to implement your object representation in that 'space'.
The choice of representation is usually a tradeoff between speed and accuracy. For example a bounding sphere is a common collision primitive, a sphere that encloses all of the object is associated with the object and is used for collision purposes. Why a sphere? because imagine testing to see if two spheres collide, if the sum of the radius's of the two spheres is greater than the distance between there centers the spheres are colliding. This can be done lightning quick. The obvious drawbacks are that spheres will give you alot of faulty collisions depending on the actually shape of said object. So look up things like sphere trees, AABB, OBB, line swept spheres, bounding volume hierarchies. There are many papers out there for you to read, as well as libraries for you to look into DEEP, SWIFT++, PIVOT, SWIFT, H-COLLIDE, RAPID, PQP, V-COLLIDE, I-COLLIDE, IMPACT.
(the previous all can be found here:
http://www.cs.unc.edu/~geom/collide/packages.html) There are many more like the one thats integrated into ODE (a physics engine), i forget its name at the moment. Oh and there is a website by the name of magic-software, somewhere on there site is a table on the math of colliding various type of primitives with each other i.e. triangles and lines.
For you I would advise using a bounding sphere for the object and the plane equations for the walls and floor/ceiling (assuming they are flat). The plane equation is fast easy to understand and well documented.