Sorry I'm a little late to replying, I didn't think this thread would blow up like it did.
I do have a question for tivolo, we initially thought about not using new delete new[] or delete[] but we didn't want to forsake our constructors and the like. Is there a good way around this, or do you just use Initialize() methods on all of your objects?
You don't have to forsake constructors and the likes.
But you have to do the things the compiler normally does for you yourself. That means that you have to use placement new on memory returned by your custom allocator, and also have to make sure the constructor/destructors are correctly invoked for arrays. I use regular placement new both for single instances as well as arrays, and don't rely on array placement new.
You can find really detailed info on my blog, search for "memory system", it's a five-part series.