Why boundary conditions decide the answer
Why what you specify at the edges matters more than what happens inside.
Boundary conditions decide the answer because they are the only place a solver is told anything about the world outside the shape it is working on, and everything the solver computes inside that shape is, in the end, a response to what was set at its edges.
An island of cells with nothing beyond it
A meshed part sits inside the solver as an island of cells with nothing beyond it. Left alone, the equations inside that island have no way to know what temperature the surrounding air is, how fast fluid is entering a pipe, or how a bracket is held to whatever it is bolted to. That information has to be supplied separately, at every face of the mesh that touches the edge of the modelled region, as a boundary condition: a fixed inlet velocity, a fixed outlet pressure, a wall held at a set temperature, a surface free to exchange heat with still air.
Once those edge values are fixed, the solver's iterations spend their effort working out how the interior has to behave to stay consistent with what is happening at the boundary and with itself. The physics inside the domain is being solved cell by cell, and what it solves for is a response to conditions a person chose and typed in. Change one of those inputs and the entire interior field changes with it, however carefully the mesh in the middle was built.
This is easy to lose sight of because the boundary conditions take up a corner of the setup screen, a handful of numbers next to thousands of cells and a long list of physics options. It is tempting to treat them as a formality to fill in quickly on the way to the part of the job that feels like real engineering, the meshing and the solver settings. The direction of causation actually runs the other way. The mesh and the solver settings decide how faithfully the interior response is calculated. The boundary conditions decide what that response is a response to, and no amount of care spent on the first can make up for carelessness in the second.
A bathtub fills at the rate its tap and plug allow
Filling a bathtub illustrates the same relationship. The level of water in the tub at any moment depends on exactly two things happening at its edges: how far the tap is opened, and whether the plug is in or out and how well it seals. Nothing about staring hard at the water already in the tub, measuring its temperature or watching it swirl, changes how fast the level will rise. Two tubs with identical shapes and identical water inside them will fill at completely different rates if one has the tap opened wider or the plug seated less tightly than the other. The water in the middle is only ever responding to what is set at the two edges of the system, the tap and the drain.
A simulated domain works the same way. The cells sitting in the geometric middle of the mesh, far from any wall or inlet, do their arithmetic diligently, but what they arrive at is entirely downstream of the values fixed at the boundary. Get the tap and drain wrong and the most careful modelling of the water in between changes nothing about whether the final answer is right. Somebody who spent an hour studying the exact swirl pattern in a bathtub while never checking how far the tap was open would be doing careful, legitimate hydraulics on a question nobody asked, and a simulation built around a confidently wrong boundary condition is doing precisely the same thing with more decimal places.
How a ten percent inlet error becomes twenty
A boundary condition rarely needs to be exact to the last decimal place, though it does need to be right in the direction and rough magnitude that matter for the question being asked, because some results grow faster than the input that drives them. The pressure lost along a pipe carrying a turbulent flow rises roughly with the square of the flow speed, so an inlet velocity set 10 percent too high produces a pressure drop about 21 percent too high, twice the original error, before any other mistake has been made. Small mistakes at the edge are carried through thousands of iterations of a solver treating them as gospel, and every one of those iterations works out how the interior must look for the boundary to be true.
Stating the edges out loud before a run
The most valuable minutes spent setting up a simulation usually go on deciding what is true at every boundary of the domain, and how confidently that is known, ahead of any time spent on the mesh or the physics model. A beautifully refined mesh wrapped around a boundary condition that is a rough guess produces a beautifully refined picture of the consequences of that guess. Engineers who have been burned by this tend to develop a habit of stating their boundary conditions out loud before a run starts, partly to catch an obviously wrong number, and partly because saying where the real uncertainty in a study lives is a useful check against trusting the interior detail more than it has earned.
That habit is worth keeping precisely because boundary conditions rarely announce their own uncertainty. A drawing might specify an inlet temperature to a fraction of a degree, and the number will sit in the setup screen looking every bit as precise and trustworthy as anything the mesh itself produces, whether it was measured on the real system or assumed from a datasheet or a similar part built previously. The interface between a solver and the world outside it is exactly where confident-looking numbers and well-founded numbers are hardest to tell apart, which is why the boundary deserves more scrutiny than its small footprint on the setup screen suggests.