Booleans will never fail if you plug a cylinder primitive in a single face or a simple geometry like a plane with a few faces. So, if you have a complex geometry that makes the booleans fail, you can just separate the face/s where the cylinder intersects, make the Boolean operation, and merge back the separated part to the original object. However avoid using single face with boolean intersections because it creates the so called ‘geometry hole’. Geometry hole is an island of edges that is not connected to the rest of the mesh and a face with it won’t work with most of the tools. To prevent this, when using single faces like sides of a cube, before the boolean operation, subdivide the face at least into 2 faces (triangles or quads) so that the boolean intersection overlaps more than one face.
I just tried and figured out another way to do this without using booleans. Create a cube and follow these steps:
1. Choose the Split Poly Tool, go to its options, make sure the options are reset, and keep the options open.
2. Click on a corner of the cube to start a split.
3. In the Split Poly Tool options, uncheck ‘Split only from edges’ and click in a spot on the face where you want to be the center of the hole
4. In the Split Poly Tool options, check ‘Split only from edges’, click on the oposate corner that is not shared by the edge you started the split from, and right click to apply the Split.
5. Create another split connecting the other two corners of the face and passing through the vertex in the middle
6. Select the vertex where the two splits intersected and choose Edit Mesh > Chamfer Vertex.
7. Select the face created by the Chamfer vertex and choose Mesh > Smooth
8. In the Attribute Editor go to the polySmoothFace tab, uncheck ‘Preserve Selection Borders’, and increase the ‘Division Levers’ until the hole looks round from the desired distance.
That’s basically it. Now if desired you can delete the faces, and choose Mesh > Fill Hole, then Extrude or whatever you like. At any time you can go to the polyChamfer tab in the Attribute Editor and change the Width to make the hole with different size.
Hope this helps