In collision detection it is often beneficial to first detect collisions between simple objects and then specialise to the more complex one. This is called broad-phase and narrow-phase collision detection. The idea is that using a simpler algorithm to rule out collisions first makes the process faster when objects can be proven trivially not to be colliding.
You could initially model all objects as circles or boxes that encompass the, potentially more complex, true shape. If you find that these objects are colliding then you can use a more complex algorithm to check for collisions.
It is known that, for all convex objects, if the two objects are not colliding then you can find a plane between them. This is known as the separating axis theorem. Since both a circle and a square are convex you can use this to design an algorithm to detect collisions between them.
You can first search simple planes, such as those parallel to the edges of the square and those that are tangents to the circle. A good choice would be the plane that is a tangent to the circle on the line between the two centres of the objects, followed by the line between the centre of the circle and each corner.
Once you have found a separating plane the objects can't be colliding and you can stop searching.
Hope this helps.
(A very detailed explanation of the application of this can be found here: http://www.metanetsoftware.com/technique/tutorialA.html#section1)