Are you sure about that. Draw a square. Now draw a circle just not touching the bottom left corner of the square at the 45 degree angle from the top. See what I mean. What you've got there is a rectangle against square collision detector.

Alan

Edit: Here's an idea. I'm going to describe it graphically, rather than programmatically. I am assuming the rectangle is aligned with the x & y axes. If not, then a rotation is required first.

1) Draw two lines parallel with the x and y axes, through the centre of the circle, splitting it into four quadrants. The lines extend beyond the circle.

2) Determine which quadrant each corner of the rectangle lies in.

3) i) If 3 or 4 quadrants have at least one corner, then there is a collision

3 ii) If 2 quadrants have at least one corner then check if the square bounding box of the circle intersects the rectangle. If so then there is a collision

3 iii) If all rectangle points fall in the same quadrant, then calculate the square of the distance of each rectangle corner from the centre of the circle. If any of these are less than the square of the circle radius then there is a collision.

It's just an idea, may be a better way;)