TBH, I don't understand the issue with BOOST_CHECK_SMALL:
double val = func(); //should be between 95 and 105
BOOST_CHECK_SMALL(val - 100, 5);
However, if it has to look more like CHECK_CLOSE, you'll have to roll your own macro the way boost does - just dig into the corresponding headers. You'll probably have to add your own check type enum value, create a predicate and use it in your macro.
Or use BOOST_CHECK_PREDICATE which honestly looks a lot uglier than CHECK_SMALL with a difference. Or simply use BOOST_CHECK with a custom function returning a predicate - but I think that's overkill.