C++, 195195 194 bytes
-1 bytes thanks to Zacharý
Uppercase, return true if input is a strong word, false otherwise ( C++ have simple int to bool implicit cast rules, 0 => false, true otherwise )
#include<string>
#define C(p)(v.find(e[p])==size_t(-1))
std::string v="AEIOUY";int s(std::string e){for(int i=0;i<e.size()-1;++i)if(e[i]>64&&e[i]<91&&C(i)&&C(i+1))return 0;return !C(e.size()-1);}
Code to test :
auto t = {
"HATE",
"LOVE",
"POPULARIZE",
"ACADEMY",
"YOU",
"MOUSE",
"ACORN",
"NUT",
"AH",
"STRONG",
"FALSE",
"PARAKEET"
};
for (auto&a : t) {
std::cout << (s(a) ? "true" : "false") << '\n';
}