When the “Thinking Particles” button in the Krakatoa GUI is checked, Krakatoa will load the ThinkingParticles.dll in order to use their SDK to extract particle data directly from the TP object in the scene. If the version of the DLL does not match the SDK we were provided Krakatoa will put up a message and refuse to continue. This is neccessary because of the nature of C++. Loads of functionality is not directly stored in the DLL, but is inferred from the header files provided by the TP SDK. Even minor changes such as adding a new data member to an object will throw off the memory layout of the TP SDK and cause undefined (and likely a crash to desktop).
We used to just try and load it anyways before we had the TP 4 SDK and the results were disastrous, so the behavior was changed to what you have now.
Given my experience with the TP SDK, I feel confident saying that allowing you to try and use an older SDK implementation would be like adding a “crash now” button. And that’s not very professional.