friden,
As far as I can tell from your VI and your code, it should be very easy to make your test VI crash LabVIEW: if you enter a longer string in "String 2" than in "String" and then run the VI, LabVIEW is liable to crash because the DLL (in the course of its strcpy) will attempt to overwrite bytes beyond those that have been formally allocated by LabVIEW. LabVIEW may not crash every time in every version on every OS, but it is not an unlikely result.
In other words, it seems to me that your VI and DLL can be expected to work consistently--regardless what LabVIEW version is being used--only if you make sure to enter a large enough string in "String" to accomodate what has been entered in "String 2".
For a great overview of this issue and templates for passing other LabVIEW datatypes to a DLL, check out the
Passing a Variety of Data Types from DLL to LabVIEW example. It covers something very similar to what you're doing.
Hope it helps,
John