BoxWhiskerChart uses interpolation between numbers, while the default Quantile command find the nearest number. The difference is especially noticeable when you have few datapoints, and many numbers that are the same:
Quantile[data, 1/4]
Quantile[data, 1/4, {{1/2, 0}, {0, 1}}]
BoxWhiskerChart[data]
if you hover over the plot you will see: